Delphi - Insertar con adoquery

 
Vista:

Insertar con adoquery

Publicado por Edgardo (4 intervenciones) el 26/01/2006 14:01:39
Hola, mi duda es la siguiente tengo una base de datos en access y dentro de esta tengo una tabla llamada personas y sus campos son cedula, nombre y apellido donde cedula es el campo clave y su tipo de dato es entero largo cuando trato de insertar un registro con adoquery me da un error. El codigo que utilizo es el siguiente:

adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('INSERT INTO Persona (cedula,nombre,apellido) VALUES (:14785236,:Manuel,:Rosas)');// en la ayuda de delphi 7 sale asi
adoquery1.open

el error es "El indice o la clave principal no puede contener un valor null"

Intente ejecutarlo sin la linea adoquery1.open y me da el error
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Insertar con adoquery

Publicado por Dr Juzam (822 intervenciones) el 26/01/2006 15:46:18
Por partes:

1) Las consultas se hacen con ADOQuery.Open, mientras que las acciones de modificación, inserción y borrado deben hacerse con ADOQuery.ExecSQL.
2) Se interpretan los valores precedidos de : como parámetros que posteriormente debes definir. Así, si lo que quieres insertar es 14785236, Manuel y Rosas lo puedes hacer así:

adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('INSERT INTO Persona (cedula,nombre,apellido) VALUES (14785236,Manuel,Rosas)'); {Fijate que no hay : delante de los valores ya que no son parametros a definir}
adoquery1.ExecSQL

Probablemente esto lo solucione.
Si quieres usar parámetros (con el fin de no repetir la escritura del SQL cada vez puedes ponerlo así:

adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('INSERT INTO Persona (cedula,nombre,apellido) VALUES (:cedula,:nombre,:apellido)');
adoquery1.Parameters[0].VAlue:=14785236; {Cambiamos el parametro 1 :cedula por el valor que queremos. Fijate que cedula va precedido de : en la SQL y por eso es parametro que debemos definir.}
adoquery1.Parameters[1].VAlue:='Manuel';
adoquery1.Parameters[2].VAlue:='Rosas';
adoquery1.ExecSQL

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Insertar con adoquery

Publicado por JAVIER GUTIERREZ (1 intervención) el 28/03/2006 03:01:08
humm si mira el problema que creo esta en como esta tu key si es autonumerica delphi no acepta eso pero si es otro problema bueno yo ago que inserte desde edit y creo que el error es como se manda y es si mal recuerdo con 'algo asi' sea numerico o no pero no me acuerdo bien escribeme a mi correo y te mando un ejemplo que yo hice o me lo pasaron ya no me acuerdo sale suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar