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 02-09-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Question Modificar registro con Query

Hola a todos:
Tengo una gran duda que no se como darle solución y es por eso que me encuentro aki. Veran, yo tengo una tabla paradox 7 con x numeros de registros. Ahora bien, como yo puedo modificar esos registros con un Query? Yo lo que heco es poner un boton con 1 edit y un boton. EN el boton le puse la sgte sentencia.
Código Delphi [-]
  
With FrmAlmacen.QFiltrar do
    begin
      Close;
       Sql.Text:='UPDATE Almacen.db SET Ubicacion:valor, Observaciones: valor1';
       Params[0].AsString:=EdtUbicacion.Text;
       Params[1].AsString:=EdtObservaciones.Text;
      Open;
    end;
Al hacer esto me da un error que dice: "Invalid use of keyword. Token: ?".
No se a que se debe. Por favor si saben como ayudarme espero lo hagan.
Gracias de antemano.
__________________
Cuando las cosas van mal, recuerda que aún pueden ir peor
Responder Con Cita
  #2  
Antiguo 02-09-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

La consulta SQL podría ser tal que este modo:

Código SQL [-]
UPDATE Almacen.db SET Ubicacion = 'valor', Observaciones = 'valor1'

Pero, piensa que lo normal es acotar la actualización tal que:

Código SQL [-]
UPDATE Almacen.db SET Ubicacion = 'valor', Observaciones = 'valor1' WHERE CampoClave = N;

Puesto que de otro modo actualizarías todos los registros... y tal vez no sea eso lo que quieras.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 02-09-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Para ejecutar este tipo de SQL debes usar el método ExecSQL de TQuery...

Ahora, tu query está mal formada:

Código Delphi [-]
with FrmAlmacen.QFiltrar do
begin
  Close;
  Sql.Text:='UPDATE Almacen.db SET Ubicacion = :valor, Observaciones = :valor1';
  Params[0].AsString:=EdtUbicacion.Text;
  Params[1].AsString:=EdtObservaciones.Text;
  ExecSQL
end

Pero si te fijas bien, ese update lo que va a hacer es modificarte todos los registros de la tabla con los valores que le estás enviando. Para actualizar solo un registro necesitas especificarlo mediante la cláusula WHERE. Puedes hacer algo así:

Código Delphi [-]
Sql.Text:='UPDATE Almacen.db SET Ubicacion = :valor, Observaciones = :valor1 where Id = :Id';
// ...
Params[2].AsString := 'Identificador de campo';


Saludos...
Responder Con Cita
  #4  
Antiguo 02-09-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Hola,

Se debe a que en la sentencia Sql, falta la asignación de los parámetros...

Código SQL [-]
UPDATE Almacen.db 
SET Ubicacion = :valor, 
Observaciones = :valor1

Uhm, ese Update actualiza todos los registros, tal vez deba especificarle un Where para que actualice los registros apropiados.
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #5  
Antiguo 02-09-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
changos... llegué de tercero
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #6  
Antiguo 02-09-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No te preocupes TOPX, los terceros serán los primeros, lo dice un libro mu famoso.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 02-09-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Cita:
Empezado por dec Ver Mensaje
No te preocupes TOPX, los terceros serán los primeros [sic]
Bueno, gracias, dec
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #8  
Antiguo 02-09-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Smile

Gracias por contestar:
Ya he resuelto el problema. 1000 gracias.
Suerte.
__________________
Cuando las cosas van mal, recuerda que aún pueden ir peor
Responder Con Cita
  #9  
Antiguo 02-09-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Unhappy

Hey chicos:
Disculpen que los vuelva a molestar. Hice lo que me digeron, o sea esto:
Código Delphi [-]
  
With FrmAlmacen.QFiltrar do
    begin
      Close;
       Sql.Text:='UPDATE Almacen.db SET Ubicacion :valor, Observaciones :valor1 WHERE ID :Identificador';
       Params[0].AsString:=EdtUbicacion.Text;
       Params[1].AsString:=EdtObservaciones.Text;
       Params[2].AsInteger:=FrmAlmacen.Identificador;
      ExecSQL;
    end;

Esto esta perfecto, pero me da el mismo error. Echenle un vistazo al codigo que les puse arriba e indiquenme donde esta el error. Que es lo que está mal?
Gracias y disculpen la molestia
__________________
Cuando las cosas van mal, recuerda que aún pueden ir peor
Responder Con Cita
  #10  
Antiguo 02-09-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Alexandro,
Te estás comiendo los iguales antes de los parámetros. Como que estás con un poquito de hambre
Código Delphi [-]
'campo = :El_parametro'

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #11  
Antiguo 02-09-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Smile

Gracias Delphius. La verdad es que no me daba cuenta. Y por cierto...no tengo hambre .
Suerte y sigue así.
Hasta pronto
__________________
Cuando las cosas van mal, recuerda que aún pueden ir peor
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
modificar registros query Buelos Firebird e Interbase 8 02-03-2008 00:52:00
Modificar registro Elite237 OOP 4 03-08-2007 04:27:21
modificar resultados de un query en la BD Choclito Conexión con bases de datos 2 15-11-2006 00:12:50
modificar dbgrid ligado a query squenda Conexión con bases de datos 7 25-04-2004 06:54:03
modificar olo un registro Irina SQL 1 26-05-2003 13:41:59


La franja horaria es GMT +2. Ahora son las 12:20:21.


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