Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2008
schaka schaka is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
schaka Va por buen camino
Insertar con zquery

Hola que tal , tengo un problema para insertar registros en una tabla usando zquery, que he llamado Remision en este caso , he intentado de varias maneras , pero no he podido hacerlo , aqui les pongo mis codigos que utilizo para insertar, no se cual sea el problema pero no lo hace, espero alguien pueda ayudarme , gracias.


Código Delphi [-]
 Remision.SQL.Add('INSERT INTO remision (clave,Producto,PrecioU,cantidad,Precio,descuento,subtotal) VALUES(:Clave,: producto,: precioU,: Cantidad,: precio,: Descuento,: Subtotal)');
Remision.ParamByName('Clave').AsString := DProductos.Fields[0].AsString;
Remision.ParamByName('producto').AsString := DProductos.Fields[1].AsString;
Remision.ParamByName('precioU').AsInteger := DProductos.Fields[4].AsInteger;
Remision.ParamByName('precio').AsInteger:= DProductos.Fields[3].AsInteger;
Remision.ParamByName('Cantidad').AsInteger:= 100;
Remision.ParamByName('Descuento').AsInteger:= 200;
Remision.ParamByName('Subtotal').AsInteger := 300;

  Remision.ExecSQL;

Última edición por schaka fecha: 24-02-2008 a las 03:15:29.
Responder Con Cita
  #2  
Antiguo 24-02-2008
schaka schaka is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
schaka Va por buen camino
aqui les pongo otra forma que utilice


Código Delphi [-]
Clave:=DProductos.Fields[0].AsString;
  producto:=DProductos.Fields[1].AsString;
  precioU:=DProductos.Fields[4].AsString;
  precio:=DProductos.Fields[3].AsString;
  Descuento:= '100' ;
  Subtotal:= '200' ;
  Cantidad :='300';

 consulta:='INSERT INTO remision VALUES(clave,Producto,PrecioU,cantidad,Precio,descuento,subtotal)'; 
Remision.close;
Remision.sql.clear;
Remision.sql.add(consulta);
 Remision.open;
 Remision.ExecSQL;

En este ultimo parece solo me inserta valores NULL en mi tabla
Responder Con Cita
  #3  
Antiguo 24-02-2008
schaka schaka is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
schaka Va por buen camino
y tambien de esta otra forma y no he podido hacerlo con exito

Código Delphi [-]
Clave:=DProductos.Fields[0].AsString;
  producto:=DProductos.Fields[1].AsString;
  precioU:=DProductos.Fields[4].AsString;
  precio:=DProductos.Fields[3].AsString;
  Descuento:= '100' ;
  Subtotal:= '200' ;
  Cantidad :='300';

 consulta:='Insert Into remision (clave,Producto,PrecioU,cantidad,Precio,descuento,subtotal) '+
   'values ('+Clave+','+producto+','+precioU+','+Cantidad+','+precio+','+Descuento+','+Subtotal+')';
Remision.close;
 Remision.sql.clear;
  Remision.sql.add(consulta);
  Remision.open;
 Remision.ExecSQL;
Responder Con Cita
  #4  
Antiguo 24-02-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
El primer método es el correcto y la forma más habitual. Lo único que veo es que separas los nombres de parámetros de los dos puntos en el sql. Quizás Zeos no tenga en cuenta ese pequeño detalle, no sé.


Por lo demás debe funcionar:

Código SQL [-]
VALUES(:Clave,: producto,: precioU,: Cantidad,: precio

Debería ser:

Código SQL [-]
VALUES(:Clave, :producto, :precioU, :Cantidad, ..

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 24-02-2008 a las 14:10:12.
Responder Con Cita
  #5  
Antiguo 24-02-2008
schaka schaka is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
schaka Va por buen camino
Bueno `pues los dos puntos que parecen separados, no lo estan , pero aun asi me manda errror de sintaxis al querer insertar, no se a que se deba, gracias
Responder Con Cita
  #6  
Antiguo 24-02-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
¿qué error exactamente? Eso suele ayudar antes de imaginar que se trate de transacciones .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 24-02-2008
schaka schaka is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
schaka Va por buen camino
SQL error :you have an error in your SQL sintaxis; check the manual that corresponds toyour MYSQL server version for the right sintax to use near ;INSERT INTO remision (clave,Producto,PrecioU,cantidad,Precio,descuento,subtotal )

Uso delphi 7 y mysql 5, gracias
Responder Con Cita
  #8  
Antiguo 24-02-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Aparte de lo dicho por Lepe en lo que coincido plenamente, hay que tener en cuenta que estas usando ADD, eso quiere decir que si hay alguna sentencia en el query se añadira ocasionando errores (por eso me gusta mas text)
que tal asi:
Código Delphi [-]
Remision.Clear;
Remision.Close;
 Remision.SQL.Add('INSERT INTO remision (clave,Producto,PrecioU,cantidad,Precio,descuento,subtotal) VALUES(:Clave, :Producto, :PrecioU, :Cantidad, :Precio, :descuento, :Subtotal)');
Remision.ParamByName('Clave').AsString := DProductos.Fields[0].AsString;
Remision.ParamByName('Producto').AsString := DProductos.Fields[1].AsString;
Remision.ParamByName('PrecioU').AsInteger := DProductos.Fields[4].AsInteger;
Remision.ParamByName('Precio').AsInteger:= DProductos.Fields[3].AsInteger;
Remision.ParamByName('Cantidad').AsInteger:= 100;
Remision.ParamByName('descuento').AsInteger:= 200;
Remision.ParamByName('Subtotal').AsInteger := 300;

  Remision.ExecSQL;
Otra seria tambien quitar el AsString o AsInteger y cambiarlo por Value, aunque no creo que tenga que ver con el error.
Saludos
Responder Con Cita
  #9  
Antiguo 24-02-2008
schaka schaka is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
schaka Va por buen camino
Muchisimas gracias, creo que ya he podido solucionar el problema , al parecer solo tenia que anteponer las lineas
Remision.sql.Clear;
Remision.Close;

o no se que le hice ,pero ya me funciona, muchisimas gracias a todos por su ayuda,
Responder Con Cita
  #10  
Antiguo 24-02-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Por eso me gusta usar text, no hay que acordarse de limpiar el query ni nada.
Código Delphi [-]
Remision.SQL.Text:= 'INSERT INTO remision (clave,Producto,PrecioU,cantidad,Precio,descuento,subtotal) '+
                    'VALUES(:Clave, :Producto, :PrecioU, :Cantidad, :Precio, :descuento, :Subtotal)';
Remision.ParamByName('Clave').AsString := DProductos.Fields[0].AsString;
Remision.ParamByName('Producto').AsString := DProductos.Fields[1].AsString;
Remision.ParamByName('PrecioU').AsInteger := DProductos.Fields[4].AsInteger;
Remision.ParamByName('Precio').AsInteger:= DProductos.Fields[3].AsInteger;
Remision.ParamByName('Cantidad').AsInteger:= 100;
Remision.ParamByName('descuento').AsInteger:= 200;
Remision.ParamByName('Subtotal').AsInteger := 300;
Remision.ExecSQL;
La diferencia es sencilla y sutil pero ayuda, por lo menos a mi.
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insertar con Zquery + ZUpdate Pekador MySQL 7 04-02-2007 19:01:59
Duda sobre ZQuery ( Zeoslib ) BlackDaemon MySQL 2 02-02-2007 00:45:08
insertar / actualizar una tabla mediante el componente ZQuery Aprendiendo MySQL 3 26-04-2006 15:22:28
Update por medio de ZQuery.Post trysho MySQL 2 15-04-2006 03:41:17
ZTable vs ZQuery quade Conexión con bases de datos 1 01-06-2004 18:18:38


La franja horaria es GMT +2. Ahora son las 13:58:37.


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
Copyright 1996-2007 Club Delphi