Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-09-2005
pepitu pepitu is offline
Miembro
 
Registrado: sep 2005
Posts: 25
Poder: 0
pepitu Va por buen camino
Error al insertar o borrar registros en firebird

Hola a todos.
Hace muy poco que estoy tanto en Delphi como en Firebird y no encuentro la causa de que no se inserten o borren registros en una tabla firebird.
Intentaré explicarme al máximo. Cualquier otro dato que requieran sólo tienen que pedírmelo.

Hice la base de datos con IBExpert con una clave principal llamada ID que tiene un Generador (autoincrementa) y un Trigger que lo dispara. Debido a ésto, quito este campo de la sentencia SQL del DataSet, es decir,en la propiedad InsertSQL del IBDataSet pongo sólo los demás campos:
INSERT INTO FACTUCOMP
(TITULAR, NUMFAC, FECHA, PROVEEDOR, TOTAL)
VALUES(:TITULAR, :NUMFAC, :FECHA, :PROVEEDOR, :TOTAL)

En la propiedad DeleteSQL del IBDataSet pongo:
DELETE FROM FACTUCOMP
WHERE ID=:OLD_ID

Consideraciones iniciales:
-Tengo un IBDataBase, un IBTransaction, un IBDataSet y un DataSource (sólo para un grid). Todo en un DataModule. Todos "activos" y parece que bien conectados.
-La propiedad ForcedRefresh del IBDataSet está en True


En la aplicación, la configuración que he usado es la siguiente:
1.- En los eventos AfterPost y AfterDelete del IBDataSet coloqué un CommitRetaining.

2.-En el botón de "Añadir registro" pongo:
DM_FC.IBDataSetFC.Edit;
DM_FC.IBDataSetFC.InsertSQL;

3.-En el botón de "Borrar registro" pongo:
DM_FC.IBDataSetFC.Edit;
DM_FC.IBDataSetFC.DeleteSQL;

4.-Pongo un botón para grabar los resultados con:
DM_FC.IBDataSetFC.post;

5.-Por si acaso, pongo otro botón para cancelar la inserción de un registro (si fuese el caso) con:
DM_FC.IBDataSetFC.Open;
DM_FC.IBTransactionFC.RollbackRetaining;

PROBLEMAS
A.-Al hacer clic en botón "Añadir registro"....no observo que se añada ningún registro nuevo.
Desde el IBExpert puedo añadir sin problemas.
B.-Al hacer clic en botón "Borrar registro"...no se borra ningun registro y sale un mensaje del tipo : "Access violation...."
C.-Me pregunto si uso bien ese RollbackRetaining del punto 5.
D.-Quiero que cuando se muestre un registro...se realicen una serie de cálculos (de sus campos) cuyos resultados se muestren en unos DBEdits. Para ello, supongo que tengo que añadir New Fields al IBDataSet (que se conectarán mediante el DataSource a los distintos DBEdits)y poner las "fórmulas" en el evento OnCalcFields..... No???
Puedo hacerlo de otra forma?
E.-Necesitaría más manuales en castellano sobre Firebird, aparte de los disponibles en http://www.firebird.com.mx/modules/mydownloads/
. Existen??

Agradezco opiniones de todo tipo.
Un saludo.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:30:56.


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
Copyright 1996-2007 Club Delphi