Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ADOQuery guardar datos (https://www.clubdelphi.com/foros/showthread.php?t=75002)

avila 23-07-2011 18:44:50

ADOQuery guardar datos
 
Hola a todos:
Necesito saber si hay otra forma de guardar datos capturados a traves de Edits? usando un ADOQuery, éste es el único código que me ha funcionado pero quiero saber si lo estoy escribiendo bien y para que sirve "SQL.Close", me he dado cuenta que para delphi es indiferente si lo incluyo. También me he dado cuenta que al ingresar datos en verdad cierra la tabla que estoy consultando, cómo puedo abrirla nuevamente?

Código Delphi [-]


procedure TfrmProductos.btnGuardarClick(Sender: TObject);
begin
  With detalleGral do
  begin
   SQL.Clear;
   SQL.Add('insert into detalleGral (fecha,cod_producto,cantidad,' );
   SQL.Add('observaciones,no_inventario,id_cuenta) values(');
   SQL.Add(''+QuotedStr(MaskFecha.Text)+','+QuotedStr(EditCodProd.Text)+','+QuotedStr(EditCantidad.Text  )+',');
   SQL.Add(''+QuotedStr(EditObs.Text)+','+QuotedStr(EditInventa.Text)+','+QuotedStr(EditCta.Text)+')');
   ExecSQL;
end;

avila 23-07-2011 18:48:49

Código Delphi [-]

...
SQL.Clear;
SQL.Close:   // Para que sirve esta instrucción???
...
Hay otra manera de guardar datos con istrucciones SQL????

Caral 23-07-2011 20:09:44

Hola
Cuando se usa ADD en el sql si se quiere volver a hacer la insercion o consulta es necesario borrar la anterior, por eso se usa Clear.
Si no se quiere tener ese problema se usa TEXT.
Código Delphi [-]
 With detalleGral do
  begin
   SQL.Text:= 'insert into detalleGral (fecha,cod_producto,cantidad, '+
              'observaciones,no_inventario,id_cuenta) '+
              'values( :MFech, :CodProd, :Cant, :Obs, :Inven, :Cta)';
   Parameters[0].Value:= MaskFecha.Text;
   Parameters[1].Value:= EditCodProd.Text;
   Parameters[2].Value:= EditCantidad.Text;
   Parameters[3].Value:= EditObs.Text;
   Parameters[4].Value:= EditInventa.Text;
   Parameters[5].Value:= EditCta.Text;
   ExecSQL;
Ademas es mas cómodo y se define mejor usando parametros en la consulta, asi se evitan errores.
Saludos

avila 23-07-2011 22:05:38

Que buen consejo, muchisimas gracias Caral, lo he probado y en verdad es mucho más cómodo. Saludos y estamos en contacto.

avila 23-07-2011 22:45:51

Nuevamente:

Utilizando esta técnica que me acosejo Caral, consigo grabar datos a mi tabla, pero, necesito visualizar estos datos a través de un DBGrid cuando estoy grabandolos, pero cuando lo hago a través de un botón btnGrabar el DBGrid deja de mostrarme los datos, como que cerrara el Query o el DataSource, ¿Cómo puedo hacer tal cosa? ingresar mis datos, grabarlos y que se vean estos en el DBGrid, ¿cómo?

Código Delphi [-]

procedure TForm2.btnGrabarClick(Sender: TObject);
begin
   With Query do
   begin
     SQL.Text:= 'insert into cuentas(id_cuenta,cuenta)' +
     'values(:id_cuenta,:cuenta)';
     Parameters[0].value:= Edit1.Text;
     Parameters[1].value:= Edit2.Text;
     ExecSQL;
   end;
end;

Caral 24-07-2011 01:56:41

Hola
El BGGrid esta ligado a algo como un adotable o un adoquery.
Si abres y cierras estos lo hara.
Saludos


La franja horaria es GMT +2. Ahora son las 19:13:27.

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