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)
-   -   problemas al guarda datos en tabla en intebase (https://www.clubdelphi.com/foros/showthread.php?t=18930)

pharaonhx 27-02-2005 15:49:03

problemas al guarda datos en tabla en intebase
 
bueno la indea es que con el siguiente codigo

procedure TForm1.Button2Click(Sender: TObject);
begin
table1.Insert;
table1.Edit;
DBEdit2.SetFocus;
s:= s + 1;
Panel1.Caption:=IntToStr(S);
DBEdit1.Text:=IntToStr(s);
s:= s + Table1IDCODIGO.Value;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
table1.Post;
table1.First;
table1.Refresh;
end;;


lleno el campo condigo de esta tabla y hace un incremento en el codigo cada vez que edito uno nuevo

pero cuando lo grabo no se guarda nada en la tabla, y no se porque porque la aplicacion no da error y hace el proceso en la ejecucion pero cuando la cierro y busco los datos en la tabla no aparesen.

acepto sugerencias y ideas

marcoszorrilla 27-02-2005 17:01:02

Si la tabla es Interbase, deberás utilizar Commit o CommitRetaining y además tener una transacción abierta.


Un Saludo.

pharaonhx 27-02-2005 21:26:58

problemas alguardar
 
bueno explicame lo del comint si puedes me das un ejemplito asi sera mas facil entender tu solucion a esto. la tabla si es en interbase que la cree.

pharaonhx 28-02-2005 04:24:34

problemas para guardar
 
gracias por tu sugerncia moderador con ella resolvi el problema lo hize como lo digiste anque tuve que leer muchas cosas pero valio la pena

gracias .....

ronalg 28-02-2005 05:02:29

Mejor prueba esto, no te enojes, a todos no ha pasado
 
Diculpa, pero tu codigo esta un poco desordenado, te aconsejo que repases un poco mas la bibliografia, sobre todo la de Ian Marteens "La cara coulta del delphi 4", aun es muy util para aprender lo basico en el manejo de base de datos http://www.latiumsoftware.com/descarga/lcod4.php
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
table1.Insert;
table1.Edit;
DBEdit2.SetFocus;
s:= s + 1;
Panel1.Caption:=IntToStr(S);
DBEdit1.Text:=IntToStr(s);
s:= s + Table1IDCODIGO.Value;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
table1.Post;
table1.First;
table1.Refresh;
end;
Primero: No puedes hacer esto.
Código Delphi [-]
begin
table1.Insert;
table1.Edit;

Deberias hacer esto:

Código Delphi [-]
procedure TForm1.bt_InsertarClick(Sender: TObject);
begin
     if ibtable1.State=dsBrowse then
     begin
          ibtable1.Insert;
          //Luego el resto del codigo que quieras
          //no es muy eficiente lo que haces para generar
          //el nuevo codigo de tu registro, si estas
          //trabajando en red, tendras tarde o temprano problemas
          //mejor usa generadores y procedimientos alamcenados
     end
     else
     begin
          messagedlg('No es posible insertar datos en una tabla que se esta editando',mterror,[mbok],0);
     end;
end;

procedure TForm1.bt_guardarClick(Sender: TObject);
begin
     if ibtable1.State in [dsedit, dsinsert] then
     begin
          ibtable1.Post;
          //luego el codigo que quieras
          //no me parece "personalmente" que uses refresh cada ves que
          //inserta o editas datos, porque este se realiza automáticamente
          //ademas hacer esto con tablas consume recursos
     end
     else
     begin
          messagedlg('Si no esta editando o insertando no puede realizar un post',mterror,[mbok],0);
     end;
end;

Espero te ayude.

Saludos


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

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