FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema refresco IBX con Firebird 2 y Delphi 2006
Como no podía ser de otra forma, soy un grandísimo novato en esto de SGDB's y me he decantado a probar Firebird y como soy un "campeón" pues me he conseguido la versión 2.0.
Pues el problema es que cuando inserto un registro en una tabla, si en el AfterPost del IBDataSet hago un commit y vuelvo a abrir la tabla, todo va de maravilla, a excepción de que pierdo el puntero al registro insertado, pero si hago un commitretaining me inserta en la dbgrid los valores del primer registro de esa tabla, hasta que cierro y abro otra vez la tabla, que está todo correcto. La transacción la tengo en read commited. Y ya estoy por coger la opcion de abrir la tabla y buscar el registro cada vez, pero no me parece lógico. Lo que he encontrado extraño es que no me deja coger en DefaulAction la de TARollBackRetaining dandome el error Format %s invalid o incompatible with argument cada vez que solicito esta opción de la propiedad de IBTransaction. Gracias PD: RefreshSQL: select ORDEN,TIPO,NUMERO,SITUACION,POSX,POSY from INSTALACIONES order by ORDEN SelectSQL: select * from INSTALACIONES ORDER BY ORDEN InsertSQL: insert into instalaciones (TIPO,NUMERO,SITUACION,POSX,POSY) values (:TIPO,:NUMERO,:SITUACION,:POSX,:POSY) Siendo ORDEN un autoinc: Generador: CREATE GENERATOR GEN_INSTALACIONES_ID; Trigger: CREATE TRIGGER INSTALACIONES_BI FOR INSTALACIONES ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.ORDEN IS NULL) THEN NEW.ORDEN = GEN_ID(GEN_INSTALACIONES_ID,1); END Se me olvidaba que la forma de introducir los datos es por código. Estoy traspasando datos de una tabla Paradox 7.0 a Firebird. Código:
with Dato.Instalaciones do begin Insert; Fields[1].AsInteger:=Table1.FieldByName('TIPO').AsInteger; Fields[2].AsInteger:=Table1.FieldByName('NUM').AsInteger; Fields[3].AsString:=Table1.FieldByName('SITUACION').AsString; Fields[4].AsInteger:=Table1.FieldByName('POSX').Asinteger; Fields[5].AsInteger:=Table1.FieldByName('POSY').Asinteger; Post; end; Última edición por NPIdea fecha: 06-04-2006 a las 12:44:36. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta Delphi 6, Delphi 2005 y Delphi 2006 | Leviatan | Varios | 6 | 18-08-2007 16:02:08 |
Que es .net y delphi 2006 | artemisa | Varios | 2 | 07-04-2006 00:59:51 |
Problema con firebird 1.5 y delphi | neosyoshiran | Conexión con bases de datos | 5 | 27-09-2005 15:40:54 |
Refresco datos FireBird | Io | Conexión con bases de datos | 2 | 06-08-2005 18:44:59 |
Problema con refresco | mar646 | Gráficos | 0 | 28-03-2005 12:03:11 |
|