FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Intraweb: Ejecutar una consulta dentro del propio ACCESS
Mi duda es la siguiente, he leido que se pueden ejecutar desde Intraweb consultas que están dentro de la propia base de datos de ACCESS a la que se conecta.
Hasta ahora no he encontrado exactamente como es. ¿Alguien sabe algo? Gracias. |
#2
|
||||
|
||||
Con un componente TStoredProc o con TADOStoredProc.
Luego con TStoredProc (BDE) le "enchufas" a la Bd en la propiedad DatabaseName y la propiedad StoredProcName le pones la consulta/procedimiento que tengas en la base de datos (te saldrá un desplegable) y si es conTADOStoredProc lo mismo le "enchufas" la Bd en la propiedad Connection o DataSource como prefieras y luego le pones la consulta/procedimiento que quieras en su propiedad ProcedureName. Espero que te haya servido, Saludos, Tony |
#3
|
|||
|
|||
Estoy usando un TADOStoredProc y las inserciones, modificaciones y borrado me lo hace correctamente.
Pero cuando es un select no, mi codigo es.- proceder := TADOStoredProc.Create(Nil); proceder.ConnectionString := 'C:\xxx\bdPrueba.mdb'; proceder.ProcedureName := 'insPedido'; proceder.ExecProc; while not proceder.EOF do begin --- End; Pero siempre me da como resultado vacio, la pruebo en el propio ACCESS y me devuelve varios registros. He probado con otros métodos aparte de ExecProc pero ninguno parece ir bien. ¿Alguien sabe como ejecutar select que devuelva múltiples registros? |
#4
|
||||
|
||||
Hola.
Utiliza un .Open en lugar de un .ExecProc, si estás esperando que te devuelva un Dataset (como es el caso actual). Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#5
|
|||
|
|||
Ya había probado lo del Open, de todos modos gracias.
Pero si otra pregunta, si la consulta interna del ACCESS tiene un parámetro, como por ejemplo.- select * from prueba where precio>[precio] Desde Delphi com paso el valor a ese parámetro, lo he probado de varias maneras.- ADOStoredProc.Parameters.ParamValues['precio'] := 77; ADOStoredProc.Parameters.Parambyname['precio'].value := 77; ADOStored.Proc.Parameters.Items[1].Value := 77; Pero nada. Espero respuesta. Muchas gracias. |
#6
|
||||
|
||||
Cita:
Cita:
NOTA : Si no te aparecen los parámetros, lo puedes crear manualmente. PD : Respecto al primer código, ¿ porqué no utilizas una conexión, en lugar de especificar la ConnectionString en cada comando ?. No estoy seguro, pero es muy probable que se abran distintas conexiones a la base de datos. Simplemente añade un componente TADOConnection al formulario (o en un DataModule para poder compartirlo entre formularios), y especifica la propiedad Connection del TADOStoredProc a esa conexión. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
|
|