Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2006
huwabe78 huwabe78 is offline
Miembro
 
Registrado: Oct 2006
Posts: 18
Poder: 0
huwabe78 Va por buen camino
Unhappy problemas con el UPDATE

Q tal, en un form donde debo actualizar unos datos que me muestra en unos edit me tira un error de UPDATE, lo curioso es que lo unico que hice fue modificar los edit de otra secuencia de otro form, el codigo es el siguiente:

procedure TModificaciones_productos.Button_modificar(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.clear;
ADOQuery1.SQL.add ('UPDATE productos SET producto="'+Edit_prod.Text+'",precio='+Edit_precio.Text+',stock='+Edit_stock.Text+',tipo_prod="'+Edi t_tipo.Text+'"');
ADOQuery1.SQL.add ('WHERE codigo = '+Edit_codigo.Text+'');
ADOQuery1.open;
try
except
end;
end;

EL ERROR EXACTO QUE ME TIRA ES: Error de sintaxis en la instrucción UPDATE.

desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 29-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: May 2003
Ubicación: Ciudad de México
Posts: 20.183
Poder: 10
roman Tiene un aura espectacularroman Tiene un aura espectacular
Lo más sencillo en estos casos para evitar dar palos de ciego, es que examines cuál es la sentencia final que queda en la propiedad ADOQuery1.SQL. Si hay algún error en la manera en que se concatena la sentencia, te darás cuenta mucho más rápido.

// Saludos
Responder Con Cita
  #3  
Antiguo 29-11-2006
huwabe78 huwabe78 is offline
Miembro
 
Registrado: Oct 2006
Posts: 18
Poder: 0
huwabe78 Va por buen camino
Roman te pido disculpas, pero la verdad es que no entiendo a que te referis con lo de la sentencia final, ya que como dije anteriormente esa sentencia es la copia modificada de un anterior que si funciona.
Responder Con Cita
  #4  
Antiguo 29-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: May 2003
Ubicación: Ciudad de México
Posts: 20.183
Poder: 10
roman Tiene un aura espectacularroman Tiene un aura espectacular
Me refiero a que pongas algo como:

Código Delphi [-]
procedure TModificaciones_productos.Button_modificar(Sender: TObject);
begin
  ADOQuery1.close;
  ADOQuery1.SQL.clear;
  ADOQuery1.SQL.add ('UPDATE productos SET producto="'+Edit_prod.Text+'",precio='+Edit_precio.Text+',stock='+Edit_stock.Text+',tipo_prod="'+Edi t_tipo.Text+'"');
  ADOQuery1.SQL.add ('WHERE codigo = '+Edit_codigo.Text+'');

  ShowMessage(ADOQuery1.SQL.Text); // <--- AQUÍ VES LA SENTENCIA FINAL

  ADOQuery1.open;
  try
  except
  end;
end;

Para que veas como quedó la sentencia. Es posible que el problema venga del valor que tiene alguno de los Edits, por ejemplo, que esté vacío.

// Saludos
Responder Con Cita
  #5  
Antiguo 30-11-2006
ramiretor ramiretor is offline
Miembro
 
Registrado: May 2003
Ubicación: México
Posts: 196
Poder: 16
ramiretor Va por buen camino
Hola:
Te has fijado que el "Where" está pegado con la parte anterior de la sentencia SQL?

Saludos
__________________
Ernesto R.
Responder Con Cita
  #6  
Antiguo 30-11-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Registrado
 
Registrado: Apr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 18
vtdeleon Va por buen camino
Cita:
Empezado por ramiretor
Te has fijado que el "Where" está pegado con la parte anterior de la sentencia SQL?
No aplica, porque esta usand Add() para insertar la cadena de la consulta y por cada Add pasa (o salta) a la siguiente linea. Si estuviera concatenandolo (+), pues ahi si aplica.

Saludos
Responder Con Cita
  #7  
Antiguo 30-11-2006
Nelet Nelet is offline
Miembro
 
Registrado: May 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 16
Nelet Va por buen camino
Podria ser por las puñeteras comillas??.
Suponiendo que producto, tipo_prod y código son strings.

Código Delphi [-]
procedure TModificaciones_productos.Button_modificar(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.clear;
ADOQuery1.SQL.add ('UPDATE productos SET producto='+quotedstr(Edit_prod.Text)+',precio='+Edit_precio.Text+',stock='+Edit_stock.Text+',tipo_pr  od='+quotedstr(Edit_tipo.Text));
ADOQuery1.SQL.add ('WHERE codigo = '+quotedstr(Edit_codigo.Text));
ADOQuery1.open;
try
except
end;
end;
__________________
_____________________________________
And follow me to where the real fun is
Responder Con Cita
  #8  
Antiguo 30-11-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: May 2003
Posts: 7.424
Poder: 23
Lepe Va por buen camino
Al final los que damos palos de ciegos somos nosotros.

Si no das con el resultado, comenta de qué tipo son cada campo y también qué base de datos estas usando.

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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
urgente problemas con update vero_17jm SQL 2 29-11-2006 10:52:39
Problemas de con UPDATE jmlifi Varios 3 20-05-2005 21:59:42
problemas con el insert y el update tiagor64 SQL 5 16-02-2005 17:46:09
Problemas con Update ramonibk MS SQL Server 2 01-09-2004 14:40:32
Problemas con update usando adoquery albertron Conexión con bases de datos 2 16-01-2004 14:42:58


La franja horaria es GMT +2. Ahora son las 16:24:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi