PDA

Ver la Versión Completa : insertar sqlquery


ttotto
09-07-2012, 18:51:53
hola a todos :

soy nuevo en esto de delphi con mysql

quiza sea algo tonto lo que pregunto

tengo un forma donde me conecto con sql connection e intento insertar un dato
con sqlquery
mi coneccion esta bien
mi codigo es este
sqlquery1.close;
sqlquery1.SQL.clear:
sqlquery1.SQL.add('insert into nomina(id,nombre) values(:4, :contabilidad)');
sqlquery1.ExecSQL;

me manda este error

dbexpress driver does not support the TDBXType.UNKNOWN
data type. vendor eoor message

alguien me puede ayudar

Casimiro Notevi
09-07-2012, 19:11:55
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:

http://neftali.clubdelphi.com/images/UtilizarTAGs.png

Gracias :)


En relación a tu consulta, sobran los dos puntos, eso se usa para pasarle parámetros, que parece que no es tu caso:

Casimiro Notevi
09-07-2012, 19:15:17
sqlquery1.close;
sqlquery1.SQL.Text := 'insert into nomina(id,nombre) values(:id, :nombre)';
sqlquery1.parambyname('id').asinteger := 4;
sqlquery1.parambyname('nombre').asstring := 'Contabilidad';
sqlquery1.ExecSQL;


Lo que estás haciendo es si vas a pasarle ya los valores, sin parámetros, ejemplo:

sqlquery1.SQL.Text := 'insert into nomina(id,nombre) values( 5, '+quotedstr('Contabilidad')+')';

ttotto
09-07-2012, 20:00:05
hola Casimiro:

Te agrdesco tu ayuda

ya introduje el codigo que me muestras y ahora me manda otro error , perdon mi ignorancia

este es el error

SQLQuery1:parameter 'id' not found

Casimiro Notevi
09-07-2012, 20:09:09
Copia y pega el código que estás usando, y recuerda lo que te he comentado antes, de usar los 'tags' para el código ;)

ttotto
09-07-2012, 21:20:28
Hola Casimiro :

no entiendo lo de los tags a pegar

y respecto a el codigo ya lo pegue el primero tal como esta y me manda el error referido

Casimiro Notevi
09-07-2012, 21:45:34
Hola Casimiro :
no entiendo lo de los tags a pegar
y respecto a el codigo ya lo pegue el primero tal como esta y me manda el error referido

¿Pero entonces no lo has modificado? :confused:



Los tags es esto :)

http://neftali.clubdelphi.com/images/UtilizarTAGs.png

ttotto
09-07-2012, 23:56:17
Hola Casimiro:

creo que esto es lo que me pidesestos tags

ttotto
10-07-2012, 00:09:06
Hola Casimiro:

mira ya copie exactamente el primer codigo que pusiste y corri mi aplicacion

y el error que manda es que no existe la variable 'id'

por en la primera linea veo que me pones

insert into nomina (id, nombre) values (:id, :nombre);

por lo poco que comprendo deberia ir despues de values los valores fijod que qioero poner

y despues en la siguientes 2 lineas donde esta sqlquery.parabyname('id') debo poner el valor real que quiero poner es asi

ttotto
10-07-2012, 00:12:24
Hola Casimiro:

estube revizando y encontre algunos errores de escritura
ahora me manda este otro error

column count doesn't match value count at row 1

ecfisa
10-07-2012, 00:34:21
Hola ttotto.

Si los nombres de tabla y campos son correctos (NOMINA, ID y NOMBRE), de este modo tiene que funcionar:

with SQLQuery1 do
begin
SQL.Text:= 'INSERT INTO NOMINA(ID, NOMBRE) VALUES(:PID, :PNOMBRE)';
Params.ParamByName('PID').AsInteger:= 4;
Params.ParamByName('PNOMBRE').AsString:= 'Un_Nombre';
ExecSQL;
end;


Saludos.

ttotto
10-07-2012, 15:03:44
Hola Buenos dias :

gracias Casimiro y Eficsa:

Por la tarde estuve revisando paso a paso todo el codigo y ya pude insertar

esto lo hago con datos fijos ahora lo intentare con 2 edit y pasando el valor

a mis variables , gracias por su paciencia