![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
¿insertar en procedimientos ?
Hola,
Estoy trabajando con delphi 6 e interbase 7. Tengo un procedimiento en IB, que llamo desde mi programa, con un tDataSet, rellenando el EditSQL. Puedo "Añadir campos" desde el "Editor de campos", pero si desde el "DataSet Editor" genero SQL para insertar, modificar, ... me da error de código SQL al intentar añadir campos nuevos. La única forma que conozco para que me permita insertar esos campos, es dándole código SQL a la insercción , (insertSQL), pero o no lo hago bien, o no se puede insertar en estos procedimientos. ¿Alguien puede ayudarme con esto?, por que, por lo que tengo leido en el foro, veo que los procedimientos dentro de interbase, son muy comunmente usados, y me imajino que tiene que tener alguna forma de usarlos para insertar registros nuevos. Gracias Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#2
|
|||
|
|||
|
Si he entendido bien, estás utilizando el TIBDataSet para hacer llamadas a un Procedimiento Almacenado???
Si es así, no estás utilizando el componente correcto, has de usar el TIBStoredProc |
|
#3
|
|||
|
|||
|
Glups! ya sabía yo que tenía que estar haciendo algo mal...
, no hay nada en esta vida como "saber".Supongo que se usará más o menos igual, ¿no?.... Bueno, pos' lo dicho, que muchas gracias.... Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#4
|
|||
|
|||
|
Hola,
He usado el TIBStoredProc en vez del tibDataSet, y al compilar el programa me resuelve el siguiente error, cuando se está abriendo la base de datos, "Use ExecProc for Procedure : use TQuery for Select procedures" supongo que hay algo más que debo saber al respecto de los TIBStoredProc, como por ejemplo, como les pido que se abran, si es que hay que pedirselo. GRacias, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#5
|
||||
|
||||
|
Hola Giniromero!
1.- Tienes que enlazar el TIBStoredProc con una transacción. 2.- Cuando quieras ejecutar el procedimiento : (transaccion --> tr; TIBStoredProc---> IBP) Código:
tr.Active := False;
IBP.StoredProcName := nombredelprocedimiento;
if not tr.InTransaction then
tr.StartTransaction;
// Si tuvieras que enviarle algun parámetro
IBP.ParamByName('Parametro').AsInteger := Para;
IBP.ExecProc;
tr.Commit;
Saludos! |
|
#6
|
||||
|
||||
|
Hola,
como es un asunto de componentes de acceso, muevo el hilo desde "InterBase y Firerbird" a "Conexión con bases de datos". Saludos. |
![]() |
|
|
|