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)
-   -   actualizar registros (https://www.clubdelphi.com/foros/showthread.php?t=69130)

stand 28-07-2010 07:46:05

actualizar registros
 
Hola, disculpen estoy haciendo una pequeña aplicacion que esta conectada a una base de datos, en el que la actualizacion de resgristros es la siguiente

Código SQL [-]
with DataModule2.query1.SQL do
          begin

            DataModule2.query1.SQL.Clear;
            DataModule2.query1.SQL.Add ('UPDATE Cliente  SET Nombre_cliente=:nc,Apellidos_cliente=:ac,Direccion_cliente=:dc,Telefono_cliente=:tc');
            DataModule2.query1.SQL.Add ('WHERE Id_cliente=:ic');

         
                DataModule2.query1.ParamBYName('ic').AsInteger := StrToInt(edit1.text);
             
            DataModule2.query1.ParamByName('nc').AsString := edit2.text;
            DataModule2.query1.ParamBYNAme('ac').AsString := edit3.text;
        DataModule2.query1.ParamByname('tc').AsInteger := StrToInt(edit4.text);        
            DataModule2.query1.ParamByName('dc').AsString :=edit5.text;
          
           
            DataModule2.query1.ExecSQL;
      
       end


aqui se actualizan los campos de nombre cliente, apellido,telefono, y direccion, con el id del cliente. Al momento de la ejecucion me sale un error interno de automatizacion Ole, me podrian decir que es lo que esta mal, estan mal las sentencias?

olbeup 28-07-2010 08:31:23

para que quiere poner el DataModule2 dentro de un with sino lo utilizas para nada.
Cita:

with DataModule2.query1.SQL do
begin

DataModule2.query1.SQL.Clear;
DataModule2.query1.SQL.Add ('UPDATE Cliente SET Nombre_cliente=:nc,Apellidos_cliente=:ac,Direccion_cliente=:dc,Telefono_cliente=:tc');
DataModule2.query1.SQL.Add ('WHERE Id_cliente=:ic');


DataModule2.query1.ParamBYName('ic').AsInteger := StrToInt(edit1.text);

DataModule2.query1.ParamByName('nc').AsString := edit2.text;
DataModule2.query1.ParamBYNAme('ac').AsString := edit3.text;
DataModule2.query1.ParamByname('tc').AsInteger := StrToInt(edit4.text);
DataModule2.query1.ParamByName('dc').AsString :=edit5.text;


DataModule2.query1.ExecSQL;

end
Mira esto si esta mejor, y si no te funciona es por que algo tiene mal anterior a esto.
Código Delphi [-]
with DataModule2.Query1 do
begin
  SQL.Clear;

  SQL.Add ('UPDATE Cliente');
  SQL.Add ('  SET');
  SQL.Add ('    Nombre_cliente     = :nc');
  SQL.Add ('    ,Apellidos_cliente = :ac');
  SQL.Add ('    ,Direccion_cliente = :dc');
  SQL.Add ('    ,Telefono_cliente  = :tc');
  SQL.Add ('  WHERE Id_cliente = :ic');

  ParamByName('ic').AsInteger := StrToInt(Edit1.Text);
  ParamByName('nc').AsString  := Edit2.Text;
  ParamByName('tc').AsInteger := StrToInt(Edit4.Text);
  ParamByName('dc').AsString  := Edit5.Text;

  ExecSQL;
end;
Un saludo.

P.D.: La belleza de escribir código delphi es que se entienda lo que escribes y saber por donde te has quedado.

Axel_Tech 29-07-2010 10:10:24

También por si acaso asegúrate que los tipos de datos de los parámetros son iguales que los campos de la tabla que le haces el update.


La franja horaria es GMT +2. Ahora son las 03:09:11.

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