Ver Mensaje Individual
  #6  
Antiguo 09-06-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 23
guillotmarc Va por buen camino
Cita:
Empezado por Brewster
Ya había probado lo del Open, de todos modos gracias.
Sigue haciendo pruebas con el Open, puesto que con el ExecProc no tienes ninguna posiblidad de abrir un Dataset (y por tanto navegar por él, con First, Next, Eof, ...).

Cita:
Empezado por Brewster
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;
Las 3 formas són correctas. El problema debe estar en que no te encuentra el parámetro. Cuando usaba ADO, creaba los parámetros como persistentes para no tener este problema. Simplemente en tiempo de diseño vete a la colección Parameters del componente, y modifica alguna propiedad (normalmente la Values) para que el parámetro quede fijado como permanente.

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).
Responder Con Cita