Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Usando DbGrid para introducir datos (https://www.clubdelphi.com/foros/showthread.php?t=34851)

Seryon 23-08-2006 20:19:22

Usando DbGrid para introducir datos
 
hola de nuevo.

bueno la cosa es q tengo un dbgrid conectado a un ibDataset, en el dbgrid estoy introduciendo lo q seria el detalle de una factura, y lo curioso es q el primer registro logro introducirlo sin problemas, pero en el segundo me da un error de este tipo:
'Raised execption class EIBClientError with message 'IBSQL Open'

en el IbDataSet tengo una consulta sql en el SelectSql, ModifySql y InsertSql

Espero q alguien me pueda ayudar Gracias.

si hacen falta mas detalles de lo q estoy haciendo para poder darme una respuesta, pedirmelo y os lo intentare explicar mas detallado.

Delphi5 y Firebird

vtdeleon 24-08-2006 02:21:20

Cita:

si hacen falta mas detalles de lo q estoy haciendo para poder darme una respuesta, pedirmelo y os lo intentare explicar mas detallado.
Creo que sí es necesario.

Dinos los componentes usados y muestranos fragmentos de codigo y sentencias sql que utilizas.

Seryon 24-08-2006 20:02:03

los compnentes q uso son los de interbase q trae delphi, un DbGrid y un TIBDataSet.

la consulta sql q utilizo para abrir el Tibdataset es esta:

select * from TICKET_DETALLE
where TD_ID_TICKET = :ID_TICKET

Asi es como abro el TIbDataset:

IBQTicketDetalle.Prepare;
IBQTicketDetalle.Params.ByName('ID_TICKET').Value := EdN_Documento.Text;
IBQTicketDetalle.Open;
IBQTicketDetalle.FetchAll;
IBQTicketDetalle.Last;
IBQTicketDetalle.Insert;

Le paso como parametro el nuevo id del ticket q se q no existe para tener una consulta vacia.

Entonces la cosa es q el primer post no me da problema, pero al intentar hacer el segundo (o sea, al pasar a la siguiente fila en el dbgrid) es cuando me da el fallo.

Gracias por todo.

Caral 24-08-2006 22:40:51

Hola:
En el codigo no veo el Post, pero si es asi como lo tienes,
Me ha pasado que cuando haces el post, si no hacepta Refrech, cierro y habro la consulta para que se refresquen los datos.
Con esto logro que se evalue la condicion de mi consulta nuevamente, es tan rapido que ni te das cuenta o el usuario.
No se Pruebalo
Saludos

vtdeleon 25-08-2006 00:37:05

Saludos

Primero decirte qeu a pesar de haber proporcionado "algo" de codigo, creo que aun falta mas.

Sentencia de Insercion, codigo para guardar

Observaciones:

1ra - Veo que utilizas FecthAll y Last; al parecer necesitas que aparezcan todos los registros. Pues bien, puedes quitar uno de los dos, si deseas traer todos los registros, utilizar "FecthAll", pero si ademas de eso deseas ir al final, solo utilizar "Last", pero no uses los dos.

2da - Creo que no es bueno hacer insert y open en un mismo procedimeinto. Hazlo aparte, dos procedimietos.

3ra - Antes de reasignar parametros, cierrra el DataSet (Close).

Seryon 25-08-2006 11:41:58

Muchas gracias por vuestra ayuda.

al final lo q tenia mal era la consulta del insertSql.

Hasta otra ;)


La franja horaria es GMT +2. Ahora son las 08:58:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi