Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error Consulta Con TClientDataSet... (https://www.clubdelphi.com/foros/showthread.php?t=48540)

LProject 27-09-2007 17:19:26

Error Consulta Con TClientDataSet...
 
Hola, Como Esta?..
mi pregunta es la siguiente; Como puedo resolver un error que me da al consultar con un TClientDataset, yo estoy haciendo lo siguiente;

Yo tengo configurado Un TQuery, en su propiedad tengo esta consulta:

Select
*
from
prestamos
where
codigo =:codigo

este TQuery lo tengo conectado a un TDatasetProvider Y este a un TClientDataSet, estoy intentado consultar un prestamo pasandole parámetro atraves del TClientDaset haciendo esto;

ModuloDatos.cdsPrestamos.Close;
ModuloDatos.cdsPrestamos.Params[0].value := Prestamo {Prestamo es la variable que almacena el prestamo a buscar}
ModuloDatos.cdsPrestamos.Open;

El problema es que en el momento en que se abre el TClientDataset Me dice que esta operación no se puede aplicar a un dataset cerrado. he intentado Abriendo el TQuery y no Funciona.

Gracias, Me seria de gran ayuda su respuesta.

juanelo 27-09-2007 17:45:55

Hola,
Mira el error te lo da porque no debes de pasar el valor de parametro al CDS sino a tu query, ejemplo:
Query.ParamByName("PARAMETRO").AsIntenger=100
antes de abrir el CDS.
Saludos

LProject 27-09-2007 18:02:13

Gracias, Juanelo. Lo intentaré de esta forma.

LProject 29-09-2007 17:52:24

Hola como estan?.. Bueno Juanelo he probado de esta forma, y realmente no funciona, creo que debe haber una forma en que se le pase el parámetro al TClientDataset, para realizar la busqueda..

maro 29-09-2007 20:35:26

Hola,

Has ejecutado Fetch Params en el ClientDataset?

Imagino que sí. Si no lo hubieras hecho el problema sería que el ClientDataset no tendría configurado el parámetro.

Un Saludo.

juanelo 01-10-2007 16:21:28

Cita:

Empezado por LProject (Mensaje 234994)
Hola como estan?.. Bueno Juanelo he probado de esta forma, y realmente no funciona, creo que debe haber una forma en que se le pase el parámetro al TClientDataset, para realizar la busqueda..

Hola, ya intentaste ejecutar la query directamente?, tendrias que editar los parametros de la query y asignarle tipo y valor a tu parametro (por cierto a lo mejor lo que te hace falta es indircarle el tipo de parametro (si es entero, cadena, flotante, etc), pero intenta ejecutar tu query, no creo que sea problema del CDS.
Saludos

LProject 03-10-2007 22:06:35

Si, he dado estos pasos. Realmente me funciona pasando parámetro a TClientDataset, pero cuando hago lo mismo en una relacion maestro detalle. Me dice que esa operación no se puede realizar en un dataset cerrado. Por ejemplo tengo todas las conexiones correctas, inserto registro y funciona bien, el problema esta en que cuando voy a buscar un registro le paso parámetro TClientDataset y al momento de abrir me da el error.

Tengo estos componentes.
cdsPrestamos TClientDataset
cdsGarantias TClientDataset
dstPrestamos TIBDataset
dstGarantias TIBDataset
srcPrestamos TDataSource

cdsGarantias abro este en el evento afteropen del cdsPrestamos
dstGarantias en el evento afertopen del dstPrestamos

todo perfecto... Todos los parámetros perfectamente configurados,
en los TClientDataset y en los TIBDataset, ahora bien yo inserto perfectamente y funciona, pero al momento de buscar, cuando paso parámetro, asi:


cdsPrestamos.Close;
cdsPrestamos.params[0].value:= Prestamo;
cdsPrestamos.open;

me da este error:
Esta Operación no se puede realizar en un dataset Cerrado.

quisiera saber cual es el dataset cerrado porque he probado de todas formas y no he logrado descubrir cual es ese dataset que esta cerrado.

maro 04-10-2007 08:19:38

Hola,

¿Tienes un ejemplo que se pueda ver?

Si quieres, envíamolo y le echo un vistazo.

Un Saludo.
MCF.
[email protected]

LProject 05-10-2007 18:08:17

ok, maro, te enviaré un ejemplo para que chequees..


La franja horaria es GMT +2. Ahora son las 19:17:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi