Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Escritura (https://www.clubdelphi.com/foros/showthread.php?t=10098)

el_enigma1 11-05-2004 00:38:35

Escritura
 
Como puedo lograr que interbase inserte inmediatamente?
Buscando encontre que con esto
gfix -write sync -user sysdba -password masterkey C:\Bases\Mybase.gdb

lo puse para crear la base y tambien despues de crearla en IBConsole pero no me funciono, tambien dice que poniendo habilitado la opcion de Forced Write en las propiedades de la base de datos pero aun asi no lo hace inmediatamente.
Alguien sabe como puedo solucionar esto?, estoy usando delphi 5.

jachguate 11-05-2004 07:46:47

a que te referis con que inserte inmediatamente???

el_enigma1 13-05-2004 22:42:42

Refiero
 
A que deceo que no vayan a la memoria cache ya que si se traba el sistema, se apaga por corte de electricidad, si hay una aplicacion corriendo en ese instante y hace cosas raras, etc. los datos se pierden y quiero evitar eso.

__cadetill 13-05-2004 22:59:57

bueno, a parte de lo que mencionas en tu primer post... haciendo un Commit de la transacción deberia de funcionar, no?? :confused:

marcoszorrilla 13-05-2004 23:03:12

Yo hago esto:

Código Delphi [-]
procedure TDmRauch.AgendaAfterPost(DataSet: TDataSet);
begin
IbTransAgenda.CommitRetaining;
end;

Un Saludo.

el_enigma1 13-05-2004 23:11:14

Uso esto
 
Cita:

Empezado por marcoszorrilla
Yo hago esto:

Código Delphi [-]
procedure TDmRauch.AgendaAfterPost(DataSet: TDataSet);
begin
IbTransAgenda.CommitRetaining;
end;

Un Saludo.

ok mira para una insert y un Update hago esto

Una insercion la hago asi

Uso un TIBQuery
insert into TIVA (CVEIVA, DESCRIPCION, IVA) values (:I_CVEIVA, :I_DESCRIPCION, :I_IVA);

y al precionar el BotonInsertar hago esto

QInsertarIVA.Close;
QInsertarIVA.ParamByName('I_CVEIVA').AsString := EClave.Text;
QInsertarIVA.ParamByName('I_DESCRIPCION').AsString := EDescripcion.Text;
QInsertarIVA.ParamByName('I_IVA').AsString := EIVA.Text;
QInsertarIVA.Prepare;
QInsertarIVA.Open;

Una modificacion tambien con TIQuery
update TIVA set DESCRIPCION = :I_DESCRIPCION, IVA = :I_IVA where CVEIVA = :I_CVEIVA;

QModificarIVA.Close;
QModificarIVA.ParamByName('I_CVEIVA').AsInteger := StrToInt(EClave.Text);
QModificarIVA.ParamByName('I_DESCRIPCION').AsString := EDescripcion.Text;
QModificarIVA.ParamByName('I_IVA').AsFloat := StrToFloat(EIVA.Text);
QModificarIVA.Prepare;
QModificarIVA.Open;

Que le quito que le pongo?

__cadetill 13-05-2004 23:14:23

Para empezar, para sentencias SQL que no devuelven valores, no has de usar Open, sino ExecSQL

Luego, despues del ExecSQL es cuando has de hacer un Commit o CommitRetaining de la transacción

Espero te sirva

el_enigma1 13-05-2004 23:17:27

Probaremos
 
Cita:

Empezado por cadetill
Para empezar, para sentencias SQL que no devuelven valores, no has de usar Open, sino ExecSQL

Luego, despues del ExecSQL es cuando has de hacer un Commit o CommitRetaining de la transacción

Espero te sirva

La verdad como siempre lo he hecho asi, a tambien porque en la escuela asi me enseñaron.

Gracias al ratito cuento que tal.

el_enigma1 13-05-2004 23:26:56

Ya quedo
 
Cadetill eso era lo que necesitaba.


Bueno, ya quedo y muchas gracias a todos, que la verdad ya me traia loco.


La franja horaria es GMT +2. Ahora son las 07:03:23.

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