Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   ";" al final de la instrucción (https://www.clubdelphi.com/foros/showthread.php?t=35177)

MaMu 03-09-2006 19:55:42

";" al final de la instrucción
 
Error: falta ";" al final de la instrucción

Código:

QRisc.SQL.Clear;
QRisc.SQL.Add('INSERT INTO risc (nemotecnico,tipo,descripcion)');
QRisc.SQL.Add('VALUES ('+Edit1.Text+','+Edit2.Text+','+Edit3.Text+')');
QRisc.SQL.Add('WHERE id_directo='+IntToStr(test));
//QRisc.SQL.SaveToFile('C:\temp\sql.txt'); lo uso para verificar
QRisc.ExecSQL;

Le agrego el ; y me sale "se encontraron caracteres despues de la instrucción", nunca me paso, como soluciono esto?

Saludos.

Casimiro Noteví 03-09-2006 21:00:08

Cita:

Empezado por mamu
Error: falta ";" al final de la instrucción

Código:

QRisc.SQL.Clear;
QRisc.SQL.Add('INSERT INTO risc (nemotecnico,tipo,descripcion)');
QRisc.SQL.Add('VALUES ('+Edit1.Text+','+Edit2.Text+','+Edit3.Text+')');
QRisc.SQL.Add('WHERE id_directo='+IntToStr(test));
//QRisc.SQL.SaveToFile('C:\temp\sql.txt'); lo uso para verificar
QRisc.ExecSQL;

Le agrego el ; y me sale "se encontraron caracteres despues de la instrucción", nunca me paso, como soluciono esto?

Saludos.


Imagina que edit1.text='1', que edit2.text='4', edit3.text='Hola, mundo' y la variable text=8
Según tu declaración quedaría una sentencia así:
Código:

INSERT INTO risc (nemotecnico,tipo,descripcion)
VALUES (1,4,Hola,mundo)
WHERE id_directo=8

Como verás, creo que has olvidado las comillas de los campos de texto, como mínimo supongo que el campo descripcion será de texto. para que te quedara algo así:
Código:

VALUES (1,4,'Hola,mundo')

MaMu 03-09-2006 21:11:29

Sigo en la misma
 
Gracias Casimiro Notevi :

Eso lo habia pensado, inserte las comillas (probe con simples y apóstrofes) y sigue enviándome el mismo error. Despues probé asignarle parámetros, pero el error persiste.

Código:

QRisc.Parameters.ParamByName('nemotecnico').Value:=Edit2.Text;
QRisc.Parameters.ParamByName('tipo').Value:=ComboBox2.Text;
QRisc.Parameters.ParamByName('descripcion').Value:=Memo1.Text;
QRisc.SQL.Clear;
QRisc.SQL.Add('INSERT INTO risc (nemotecnico,tipo,descripcion)');
QRisc.SQL.Add('VALUES (:nemotecnico,:tipo,:descripcion)');
QRisc.SQL.Add('WHERE id_directo='+IntToStr(test));
//QRisc.SQL.SaveToFile('C:\tem\sql.txt'); lo uso para verificar
QRisc.ExecSQL;

Verifico el archivo de texto creado en :

Código:

QRisc.SQL.SaveToFile('C:\tem\sql.txt');
y el mismo me arroja el siguiente resultado:

Código:

INSERT INTO risc (nemotecnico,tipo,descripcion)
VALUES (1,1,2)
WHERE id_directo=65

Luego, cambié la última linea para agregarle el ";"

Código:

QRisc.SQL.Add('WHERE id_directo='+IntToStr(test)+';');
Quedándome el resultado en el txt, de la siguiente manera:

Código:

INSERT INTO risc (nemotecnico,tipo,descripcion)
VALUES (1,1,2)
WHERE id_directo=65;

Pero el error de "falta ";" al final de la instrucción persiste".
Sigo sin encontrarle la vuelta.

Saludos.

Casimiro Noteví 03-09-2006 21:35:36

bueno, pero también ten en cuenta que estás haciendo un "insert", el "where" sobra en la sentencia

MaMu 04-09-2006 00:01:05

Cita:

Empezado por Casimiro Notevi
bueno, pero también ten en cuenta que estás haciendo un "insert", el "where" sobra en la sentencia

Si, definitivamente sobra. El tema es que tengo 2 tablas, una Maestro y una Detalle, yo cargo datos en la maestro sin problemas, pero cuando quiero cargar datos en el detalle no puedo, me dice que se necesita una relacion. Lo curioso es que tengo la relacion establecida desde Relaciones en Access y en Delphi asignada a MasterFields (donde se casan los campos vinculados, que son identicos en ambas tablas), y si navego, funciona perfecto, es decir en el detalle solo se ve segun el id del maestro, pero a la hora de agregar datos me salta ese error, no se como pasarle el id maestro al detalle para poder cargarle datos.

Saludos.


La franja horaria es GMT +2. Ahora son las 10:18:12.

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