Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Variable TParams no almacena Params (https://www.clubdelphi.com/foros/showthread.php?t=62408)

Bauhaus1975 21-12-2008 13:11:58

Variable TParams no almacena Params
 
Hola de nuevo.
Aquí estoy con otro nuevo 'atasque' para compartir.
Resulta que tengo una variable de tipo TParams, y quiero mediante código definir los parámetros que contendrá, justo como se ve en el código adjunto.

El problema es que no almacena nada... es decir, tras ejecutar las sentencias con el debug veo que 'ListaParametros' no contiene absolutamente nada.

Código Delphi [-]
var
    tmpParam : TParam;    ListaParametros : TParams;
begin
    ListaParametros := TParams.Create();
    tmpParam := ListaParametros.CreateParam(ftString,'Nombre',ptInput);
    ListaParametros.AddParam(tmpParam);
    tmpParam := ListaParametros.CreateParam(ftInteger,'ID',ptInput);
    ListaParametros.AddParam(tmpParam);
end;

He provado varias combinaciones de cosas y nada... no sé si es que no puede manipularse un objeto TParams fuera de un data set o algo estoy haciendo mal...

¿Alguna idea?
Gracias y un saludo.

Lepe 21-12-2008 15:27:49

Hasta donde sé, no hace falta manipular los TParams. Cada vez que se asigna el SQL (supongo que será eso), se crean los parámetros directamente de la consulta.

Saludos

Bauhaus1975 21-12-2008 15:58:36

Hola Lepe, y gracias.
Resulta que la variable TParams no es para una Query ni similar.
Es una variable para almacenar unos parámetros, relacionado con el programa que estoy haciendo y según como necesito pasarlos a otro objeto, el tipo más adecuado era el TParams.
Un saludo.

Al González 21-12-2008 20:00:19

¡Hola!

Como dice la ayuda de Delphi:
Cita:

To create a field parameter as well as add it to the list, use CreateParam instead. [Para crear un parámetro de campo así como agregarlo a la lista, mejor utilice CreateParam]
No es necesaria la llamada a AddParam. Aunque eso no parece ser la causa.

Respecto a "tras ejecutar las sentencias con el debug veo que 'ListaParametros' no contiene absolutamente nada", ¿qué es exactamente lo que estás viendo con el depurador? :confused:

Saludos parametrizados.

Al González. :)

Bauhaus1975 21-12-2008 22:27:01

Cita:

Empezado por Al González (Mensaje 331745)
¿qué es exactamente lo que estás viendo con el depurador? :confused:

Hola,
Pues veo el contenido de la variable ListaParametros, que vale '()' en todo momento. También he probado a usar solo CreateParam como indicas, y el resultado es exactamente el mismo... No sé por qué no se almacenan los parámetros.
Gracias por tu ayuda y un saludo.

Al González 21-12-2008 23:30:22

Observa el valor de la expresión ListaParametros.Count y te llevarás una agradable sorpresa. Sí que deben estar los parámetros en la lista. :)

Bauhaus1975 22-12-2008 10:07:54

Hola,
Pues es cierto. Además, he recorrido la variable y aunque parece no contener nada, he accedido a los TParam introducidos previamente.
En fin, que he pensado que la cosa iba mal porque el depurador no mostraba información... (lamento la pérdida de tiempo causada)
Muchas gracias por la ayuda y un saludo.

Lepe 22-12-2008 15:29:15

Si no recuerdo mal, eso pasa con todos los objetos collection o collectionItem que el depurador pone los paréntesis. En los BDS ya si trae un TreeView que permite navegar por las propiedades de los objetos, aunque para este caso no sé como fuciona.

cnPacks (googlea), cuenta con un depurador que te permite ver todas las propiedades publicadas de un objeto (debes añadir una línea como : cndebug.traceObject(param1) para verlo, pero bueno, algo es algo).

Saludos

Bauhaus1975 22-12-2008 16:36:49

Lepe, gracias por tu aportación.
Nos documentaremos un poco más con tu ayuda.
Un saludo.


La franja horaria es GMT +2. Ahora son las 07:05:04.

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