Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Insertar mas de dos campos en mysql con Zeos y delphi (https://www.clubdelphi.com/foros/showthread.php?t=62709)

carmelina 09-01-2009 12:18:33

Insertar mas de dos campos en mysql con Zeos y delphi
 
Hola a todos;
Estoy haciendo un programa con Delphi y me conecto a mysql mediante Zeos. La cuestion es que tengo un problema para insertar los campos.
Si sólo inserto dos campos no tengo ningún problema, esta es la sintáxis que uso:
Código:

ZQuery1.SQL.Text := 'INSERT INTO NombrePassword (nombre, password) VALUES('''+Edit1.Text+''', '''+Edit2.Text+''');';
 ZQuery1.ExecSQL;

Pero cuando intento insertar más campos me da error, me dice que el tercer campo que intento insertar no es conocido en la lista de campos. El código que uso es:
Código:

ZQuery1.SQL.Text := 'INSERT INTO videos (Fecha,Hora,NombreFichero,IdUsuario,Descripcion,Duracion) VALUES ('''+fecha+''','''+hora+''','''+IdUser+''','''+desc+''','''+Duracion+''');';
 
 ZQuery1.ExecSQL;

Todo lo que estoy insertando son cadenas de carácteres y si lo hago directamente en ms2 no me da ningún problema.
Si alguien puede ayudarme u orientarme me haría un gran favor.
Gracias de antemano.

Neftali [Germán.Estévez] 09-01-2009 13:22:18

Te recomiendo que utilices en lugar de tantas comillas la instrucción QuotedStr de Delphi. Esta función te devuelve la cadena con las comillas añadidas para "pegarla" dentro de la SQL.

Código Delphi [-]
ZQuery1.SQL.Text := 'INSERT INTO NombrePassword (nombre, password) VALUES(' + QuotedStr(Edit1.Text) + ',' + QuotedStr(Edit2.Text)+ ')';
 ZQuery1.ExecSQL;

Con parámetros también evitarías estos problemas.

Por último en la segunda sentencia, la que te da error, tienes 6 campos, pero sólo añades 5 valores; Tal vez sae ese el problema.

carmelina 09-01-2009 15:27:13

Muchas gracias por tu respuesta, la verdad es que no conocía esa sentencia de Delphi y es bastante útil porque tantas comillas es un rollo.
Sobre el problema de antes, tienes razón, al final era una tontería y ya está solucionado.
Muchas gracias por responder.


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

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