Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Token unknown - line 2, column 34 ,. (https://www.clubdelphi.com/foros/showthread.php?t=74385)

Rofocale 15-06-2011 18:41:43

Token unknown - line 2, column 34 ,.
 
Token unknown - line 2, column 34 ,.

Código Delphi [-]

var
sdteFechaPago : TDateTime;
......
 sdteFechaPago := StrToDate(txtFechaAb.Text);
......
 Close;
            SQL.Clear;
            SQL.Add('INSERT INTO xcobrarpagos (xcobrar, numero, fecha, importe, interes, interesmorat, tipopago, comentario) VALUES(');
            SQL.Add(sCredito + ',' + IntToStr(iNumero) + ',''' + FormatDateTime('mm/dd/yyyy', sdteFechaPago) + ''',' + sImporte + ',' + sInteres + ',' + sInteresMorat + ',' + sTipoPago + ',''' + sComentario + ''')');
            ExecSQL;

que es lo que esta mal en este codigo alguien me hecha un cable ? :(

roman 15-06-2011 19:00:35

Aunque podemos intentar ver cuál es el error, lo más cómodo para quienes leen esto es que justo antes del ExecSQL pongas un

Código Delphi [-]
ShowMessage(SQL.Text);

y copies y pegues aquí el texto. De esta forma podremos más rápidamente ver cuál es el texto de la consulta que se está enviando y localizar la columna 34.

// Saludos

Rofocale 15-06-2011 19:12:24

Código Delphi [-]
INSERT INTO xcobrarpagos (xcobrar, numero, fecha, importe, interes, interesmorat, tipopago, comentario) VALUES(6,1,'06/15/2011',2.88,0,0,,puntual')

roman 15-06-2011 19:16:35

Pues ahí está:

Código SQL [-]
INSERT INTO xcobrarpagos (xcobrar, numero, fecha, importe, interes, interesmorat, tipopago, comentario) VALUES(
6,1,'06/15/2011',2.88,0,0,,puntual')

El caracter 34 de la segunda línea corresponde a un apóstrofe que no debe ir ahí o quizá faltó el inicial (antes de puntual).

// Saludos

maeyanes 15-06-2011 19:24:09

Hola...

Parece ser que no estás pasando bien un valor y el último valor (puntual) no está bien encerrado entre comillas simples.

Esto es lo que deberías obtener:

Código SQL [-]
INSERT INTO xcobrarpagos (xcobrar, numero, fecha, importe, interes, interesmorat, tipopago, comentario)
VALUES(6,1,'06/15/2011',2.88,0,0, ???, 'puntual')

Donde ??? es algún valor que no estás pasando bien, esto es, tu variable sTipoPago es una cadena vacía.

Yo te sugeriría que formes tu sentencia sql así:

Código Delphi [-]
SQLStr := Format('INSERT INTO xcobrarpagos (xcobrar, numero, fecha, importe, interes, interesmorat, tipopago, comentario) ' + 
  'VALUES(%s, %d, ''%s'', %s, %s, %s, %s, ''%s'')',
  [sCredito, iNumero, FormatDateTime('mm/dd/yyyy', sdteFechaPago), sImporte, sInteres, sInteresMorat, sTipoPago, sComentario]);


Saludos...

Rofocale 15-06-2011 19:25:57

muchas gracias si efectivamente tipo de pagos era lo que me daba el error..


La franja horaria es GMT +2. Ahora son las 10:32:02.

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