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)
-   -   A quien apunta el parametro (https://www.clubdelphi.com/foros/showthread.php?t=34898)

jzginez 24-08-2006 20:21:45

A quien apunta el parametro
 
Hola amigos no se si este hilo esta bien en este foro o tendria que ir en el de FireBird (espero no se molesten los master por degarles a ellos el trabajo de hubicarlo bien :D ), lo que tengo es lo siguiente uso delphi 7, firebird 1.5 y las fibplus; he creado una ventana para generar un filtro para las pFIBDataSet a travez de agregar una sentencia 'Where', se podria decir que esta ya esta funcionando de manera aceptable (yo la creo y yo la reviso :rolleyes: eso no me convence mucho pero funciona ;) ) ahora bien donde estoy perdido y por eso acudo a ustedes es que si tengo un selec con parametros, p/e:
Código SQL [-]
Select Productos.id,
  Productos.Descripcion,
  Productos.Precio,
  Productos.ID_TipoAlmacen
From productos
Where Productos.ID_TipoAlmacen = :ID_TipoAlmacen1

requiero que la condición Productos.ID_TipoAlmacen = :ID_TipoAlmacen1 no desaparesca y asi por ejemplo al agregar un filtro para el campo ID el where quede así:
Código SQL [-]
where (productos.ID >= 10) and (Productos.ID_TipoAlmacen = :ID_TipoAlmacen1)

Ok, lo que se es que con DtmDatos.pDSProductos.ParamName(i) obtengo ID_TipoAlmace1 y que con y que con DtmDatos.pDSProductos.ParamValue(i) obtengo el valor, pero ¿habra alguna forma de obtener el nombre del campo sobre el que se va a aplicar el filtro ID_TipoAlmacen??

ya que aunque en el ejemplo puse:
Código SQL [-]
Where Productos.ID_TipoAlmacen = :ID_TipoAlmacen1
donde al nombre del parametro le quito el 1 y ya se el nombre del campo, pero si yo no escribi la sentencia SQL y ya ven que no falta el que escribe:
Código SQL [-]
Where Productos.ID_TipoAlmacen = :MiParametro
y para no tener que andar lamentandocela despues no quiero guiarme por el nombre del parametro.


Espero me puedan ayudar, Gracias

ramiretor 24-08-2006 23:54:43

Hola:
Pues hasta donde yo sé, lo que preguntas no se puede, obtener el nombre del campo asi no se puede saber. Te sugiero entonces entonces que recuperes el nombre del parámetro, uses una cadena para encontrar la posición donde se encuentra el parámetro y de ahi busques en la cadena hacia atrás hasta formar el nombre del campo (aunque lo he de aceptar habría que revisar otras opciones). Como ves es mas trabajo de cadenas que de TDataSets y Querys y cosas por el estilo

Saludos a todos

jzginez 26-08-2006 17:07:44

Gracias ramiretor me has confirmado lo que me temia voy a tener que hacer una función que me le envie la sentencia sql y el nombre del parametro y me regrese el nombre del campo :confused: de casualidad no sabes si hay alguna funcion de TMemo por la que busque una cadena y me regrese el numero de linea donde la encontro?

ramiretor 28-08-2006 16:41:19

Hola_
La función "Pos" de la que encuentras ayuda facilmente, te regresa la posición del inicio de una subcadena en una cadena.

Saludos


La franja horaria es GMT +2. Ahora son las 23:52:24.

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