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)
-   -   Problema Consulta Insert into... (https://www.clubdelphi.com/foros/showthread.php?t=47334)

maeyanes 24-08-2007 22:37:40

Cita:

Empezado por enecumene (Mensaje 225950)
Me presenta el mismo error, no se si sirve de algo la linea de error que me tira el ADODB:

Creo que no entendiste... :p

En la forma donde generas el insert, coloca un componente TMemo en donde sea y modifica el código con el que te puse mensajes más arriba, el único cambio que vas a hacer es que vas a comentar la línea QHistorico.ExecSQL para que no se ejecute el insert...

Cuando en tiempo de ejecución hagas click en el botón, en el TMemo te debe salir la sentencia insert generada, la seleccionas y lo copias y lo muestras aquí para poder saber donde está el error...



Saludos...

enecumene 24-08-2007 23:03:56

maeyanes, hice exactamente lo que me pediste puse un memo en cualquier parte de la forma, el codigo lo puse asi:

Código Delphi [-]
procedure TFPedidoMod.BitBtn2Click(Sender: TObject);
begin
  FConsPed.TbPedido.Edit;
  if MessageDlg('¿Está seguro que desea Guardar?', mtConfirmation,
    [mbYes, mbNo], 0) = mrYes then
  begin
    FConsPed.TbPedido.Post;
    QHistorico.SQL.Clear;
    QHistorico.SQL.Add('insert into historico (id, no, no_ped, dpto, responsable, fecha_rec_ped, status, user, 
      date) values');
    QHistorico.SQL.Add(' ("", "'+DBEdit18.Text+'", "'+DBEdit7.Text+'", "'+DBLookupComboBox6.Text+
      '", "'+DBLookupComboBox8.Text+'", "'+DBEdit15.Text+'", "'+DBLookupComboBox1.Text+'", "'+DBEdit16.Text+
      '", "'+DBEdit17.Text+'")');
    Memo1.Text := QHistorico.SQL.Text;
    QHistorico.ExecSQL;
    MessageDlg('Los Datos se grabaron exitosamente!',mtError,[mbOK],0);
    Free;
  end;
end;

el memo me sale en blanco y el erro me sale igualito, a lo mejor estoy confundido sobre "comentar" QHistorico.ExecSQL. ojala no este molestando mucho espero:(.

maeyanes 24-08-2007 23:07:34

Has esto:

Código Delphi [-]
// QHistorico.ExecSQL;

Las dos barras (//) sirven para poner comentarios de una línea...


Saludos...

enecumene 24-08-2007 23:11:20

Ahora si eso era lo que no entendia, aqui esta lo que me sale:

Código SQL [-]
insert into historico (id, no, no_ped, dpto, responsable, fecha_rec_ped, status, user, date) values
 ("", "2", "1483", "Activo Fijo", "Modesto Encarnación", "3/8/2007", "Retroactivo", "cconcepcion", "2007-03-08")

Caral 24-08-2007 23:45:50

Hola
Tratare de explicarlo.
Hay muchas veces que cuando se separa la sentencia sql, nos genera un error de sintaxis, esto lo he visto con diferente bases de datos.
por eso te sugeri, desde hace un rato el uso de text.
Ya estas viendo varias cosas con el memo (por cierto se hace mas facil con un message), no tienes datos en un campo autonumerico, te esta poniendo en blanco ese registro, tratas un dato fecha como string (raro).
Sin mas yo lo haria asi:
Código Delphi [-]
procedure TFPedidoMod.BitBtn2Click(Sender: TObject);
begin
  FConsPed.TbPedido.Edit;
  if MessageDlg('¿Está seguro que desea Guardar?', mtConfirmation,
    [mbYes, mbNo], 0) = mrYes then
  begin
    FConsPed.TbPedido.Post;
    QHistorico.SQL.Clear;
    QHistorico.SQL.Text 'insert into historico (id, no, no_ped, dpto, responsable, fecha_rec_ped, status, user, date)'+
                        ' values ("", "'+DBEdit18.Text+'", "'+DBEdit7.Text+'", "'+DBLookupComboBox6.Text+
      '", "'+DBLookupComboBox8.Text+'", "'+DBEdit15.Text+'", "'+DBLookupComboBox1.Text+'", "'+DBEdit16.Text+
      '", "'+DBEdit17.Text+'")');
    showMessage(QHistorico.SQL.Text); // aqui veo lo mismo que en el memo
    QHistorico.ExecSQL;
    MessageDlg('Los Datos se grabaron exitosamente!',mtError,[mbOK],0);
    Free;
  end;
end;
Sigo insistiendo que el campo autonumerico no contiene nada y por otro lado siempre es conveniente hacer una transacción.
Bueno, ya diras.
Saludos

enecumene 25-08-2007 00:45:49

Problema resuelto!!!!! A que no saben donde radicaba el problema? simple y llanamente porque estaba utilizando palabras reservadas de SQL: no, user y date los cambie por cod, userid y fecha y voilá va de pelos, muchissimas gracias Caral, maeyanes Paoti y caro por su ayuda.

Saludos...


La franja horaria es GMT +2. Ahora son las 11:18:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi