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 06-09-2004
tayra tayra is offline
Miembro
 
Registrado: may 2004
Posts: 14
Poder: 0
tayra Va por buen camino
Unhappy Como ejecutar un query de Access en Delphi

Cree unos querys en Access y requiero saber como se pueden ejecutar en delphi ya sea mandarlos a llamar para que en tiempo de ejecucion me funcione o como va la estructura UPDATE en delphi, por favor si alguien sabe espero que me pueda ayudar

UPDATE DATOS SET DATOS.NO_EMPLEADO_INV = [DATOS].[NO_EMPLEADO]-4
WHERE ((([DATOS].[NO_EMPLEADO]) Mod 6="5")) Or ((([DATOS].[NO_EMPLEADO]) Mod 6="0"));
Responder Con Cita
  #2  
Antiguo 06-09-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por tayra
Cree unos querys en Access y requiero saber como se pueden ejecutar en delphi
Puesto que el SQL corresponde a un Update supongo que en Access la tienes definida como una consulta de Actualización. Delde Delphi y a través de ADO puedes acceder a éstas consultas con el componente TADOStoreProc.
Coloca un ADOConnection y conectalo al ADOStoreProc, y verás que al acceder a la propiedad ProcedureName en diseño te aparecen la consultas de actualización definidas en tu BD de Access.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 07-09-2004
tayra tayra is offline
Miembro
 
Registrado: may 2004
Posts: 14
Poder: 0
tayra Va por buen camino
Ya aplique la opcion que me diste pongo el ADOConnection y ADOstoredprod y en la propiedad ProcedureName no me aparece nada.Tiene que estar de alguna manera grabados en delphi los querys para que me aparezca algo en esta opcion.
Responder Con Cita
  #4  
Antiguo 07-09-2004
tayra tayra is offline
Miembro
 
Registrado: may 2004
Posts: 14
Poder: 0
tayra Va por buen camino
Ok, ahora sip conecte correctamente el ConnectionString y yap me aparecen los querys de access, pero cuando le pongo activar me pone commandText does not return a result set. sabes tu a que se deba esto
Responder Con Cita
  #5  
Antiguo 07-09-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por tayra
...pero cuando le pongo activar me pone commandText does not return a result set. sabes tu a que se deba esto
Supongo que debes estar usando Open para activar el StoreProc; En lugar de eso utiliza el método .ExecProc

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 12-09-2004
tayra tayra is offline
Miembro
 
Registrado: may 2004
Posts: 14
Poder: 0
tayra Va por buen camino
Hola!!

Lo q' hice fue porner un boton para conectar:

procedure TSG.BitBtn3Click(Sender: TObject);
begin
ADOStoredProc1.ExecProc;
ADOStoredProc1.FieldByName('NO_EMPLEADO').AsInteger:= BitBtn3.Spacing;
ADOStoredProc1.Close;
end;

para q' al momento de presioanrlo haga los cambios o ejecute en este caso el query

pero no me funciona sera por q' tengo un DBgrid


SALUDOS!!
Responder Con Cita
  #7  
Antiguo 13-09-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿La consulta de Access que estás utilizando tiene parámetros? Si es así, en ese caso no te puedo asegurar que vaya a funcionar.

De todas formas no entiendo qué quieres hacer con éste código.
Código Delphi [-]
ADOStoredProc1.ExecProc;
ADOStoredProc1.FieldByName('NO_EMPLEADO').AsInteger:= BitBtn3.Spacing;
ADOStoredProc1.Close;

Después de ejecutar el SP (la consulta) asignas algo a un campo (NO_EMPLEADO) y cierras (Close)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 14-09-2004
tayra tayra is offline
Miembro
 
Registrado: may 2004
Posts: 14
Poder: 0
tayra Va por buen camino
OK, como parametros? Es el nombre de un campo o en este caso la columna en la que me tiene que aparecer un numero el q' quiero del query, conecto todo y me sale el acceso al query pero me dice cuando pongo TRUE en active el comandtext no regresa un resultado nose si hay q' poner codigo en alguno de los eventos o algo se me esta olvidando, he estado leyendo acerca de los comnados ADO en delphi para ver si algun codigo se requiere para que me corra el query de access.


Gracias y Saludos
Responder Con Cita
  #9  
Antiguo 14-09-2004
tayra tayra is offline
Miembro
 
Registrado: may 2004
Posts: 14
Poder: 0
tayra Va por buen camino
Ok, ya vuelvo hacer el procedimiento y conecto el Adoconectiuon con el Adostoredproc hasta aqui todo bien ya me aparece a conexion con los querys pero me aparece que el comando text no regresa ningun valor pero me da la opcion de poner yo la sentencia directa en delphi ahi mismo:

UPDATE DATOS SET DATOS.NO_EMPLEADO_INV = [DATOS].[NO_EMPLEADO]+4
WHERE ((([DATOS].[NO_EMPLEADO]) Mod 6="1")) Or ((([DATOS].[NO_EMPLEADO]) Mod 6="2"));


o tu sabes como va este query redactado en delphi he tratado de muchas formas acomordarlo como estructura en query y no he podido, crees q' me pueads ayudar

Gracias de nuevo y saludos
Responder Con Cita
  #10  
Antiguo 14-09-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por tayra
...cuando pongo TRUE en active el comandtext no regresa un resultado nose si hay q' poner codigo en alguno de los eventos o algo se me esta olvidando...
Vamos a ver si al final nos aclaramos.
La explicación que te di al principio sirve para ejecutar la Consulta de Access, hasta ahí correcto.
Ahora comentas que quires un resultado, pero es que las consultas de actualización (UPDATE o DELETE) no devuelven resultado.

¿Exactamente qué resultado quieres obtener?

Una consulta de tipo UPDATE (como ésta) lo único que hace es actualizar uno a varios registros que cumpan esas condiciones, pero no devuelve nada.
Si a continuación quieres consultar algo (por ejemplo los registros que han cambiado) deberás lanzar otra consulta (con un TADOQuery) con un SELECT (que éste sí devuelve registros).

No se si me he explicado bien. Hay consultas SELECT que devuelven datos y otras (que normalmente conocemos como "comandos") que no devuelven (INSERT, DELETE, UPDATE).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #11  
Antiguo 14-09-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por tayra
...pero me aparece que el comando text no regresa ningun valor pero me da la opcion de poner yo la sentencia directa en delphi ahi mismo
Correcto, es lo mismo de antes, una SQL de éste tipo no devuelve valor. Y en delphi podrás ejecutarlo tanto con un TADOQuery como con un ADOCommand, y el resultado es el mismo, se actualizan registros, pero no devuelve ningún valor.
Si después de la actualización quieres consultar algo, puedes lanzar otra sentencia SQL y consultar lo que quieras.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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


La franja horaria es GMT +2. Ahora son las 12:54:34.


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