![]() |
ExecSQL y Insert [ Marcoszorrila ]
Continuacion del post: http://www.clubdelphi.com/foros/forumdisplay.php?f=6
Cita:
tengo un problemita con el Insert. Tengo esto en el Boton guardar de mi formulario: Código:
With DATAMODULE1.Query1 do Cita:
salu2. |
Al tratarse de un control que contiene el texto, no debe de ir entre comillas.
He editado la respuesta porque veo que también te sobra la coma que va despues de nombre, ya que no le sigue ningún campo más.
Por otra parte al hacer una pregunta no debes de dirigirla a ningún forista en concreto, ya que cualquiera que la vea puede responderte. Un Saludo. |
hola de nuevo...
he puesti esto para probar: y me funciona muy bien, lo malo es que es estatico, siempre me va a generar Codigo=7 y Nombre=Juan. Cita:
he probado como dice marcozorrila, sin las comillas, pero no funciona: Cita:
Cita:
alguna idea de como hacerlo? Nota: Cita:
|
sql.Add espera una cadena de texto, pero puedes construir esa cadena directamente sobre la linea, es decir:
Saludos |
Cita:
imaginemos que el valor del Edit1=5 (el edit 1 es el codigo) y el valor del edit2='Juan' (el edit2 es el nombre) cuando se presiona el boton, da un error que dice 'Invalid Field Name Juan ' osea el programa esta entendiendo el valor del edit2 como un campo de la tabla y no como un valor a insertarse en ella... :( alguna idea???? |
Cita:
Como sugerencia te recomiendo que te tomes un tiempo para pensar qué es lo que está pasando. Poniendo y quitando comillas aquí y allá no es el método adecuado para entender. También te sugiero que dediques un poco de tiempo a leer la ayuda de Delphi. Busca "Parameters" y encontrarás una sección que habla de consultas SQL parametrizadas. Usar parámetros es mucho más sencillo y legible que tratar de construir la consulta "al vuelo". // Saludos |
Roman, voy a tomar tu consejo durare esta noche probando y leyendo...
si me quedo con alguna duda la posteare. Gracias. |
SQL.Add('INSERT INTO "Empleados.db" (CODIGO, NOMBRE) VALUES (' +
inttostr(spinedit1.asinteger) + ', ' + QuotedStr(edit2.Text) + ')'); |
Existen los parametros
El sql quedaria asi :
insert into empleados.bd (campo1, campo2, campon) values (:value1, :value2, :valuen) y queryn.ParamByName('value1').AsInteger := StrToInt(edit1.Text); queryn.ParamByName('value2').AsString := edit2.Text; etc. y asi queda para los datos que les kieras mandar bye espero y te sirva |
La franja horaria es GMT +2. Ahora son las 17:32:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi