![]() |
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. |
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 |
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? |
Hola.
Utiliza un .Open en lugar de un .ExecProc, si estás esperando que te devuelva un Dataset (como es el caso actual). Saludos. |
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. |
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. |
Siento no haber contestado antes, esta mañanita he estado muu liado en el curro :D , de todas formas tienes alguien que sabe más que yo de delphi que te ha asesorado perfectamente. En cuanto a lo que comentas de los parametros, como bien dice Guillotmarc, son correctos prueba lo que te comenta él, tambien pon antes de la asignación de parámetros esta instrucción:
Saludos, Tony |
La franja horaria es GMT +2. Ahora son las 05:54:52. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi