![]() |
ver una consulta SQL con los parametros remplazados por sus valores
Hola, estoy usando DBE+Dbase
Les paso a contar que quiero... :p Nesecito ver las consultas SQL de un Tquery con los parametros remplazados por sus valores, osea: Código:
query.sql.add('WHERE dni=:dni'); Osea que quiero ver la Consulta va a hacia el servidor. |
me temo que esto no es posible, pues la sustitución se hace en el motor de base de datos, y no en el propio delphi.
:( disculpá la curiosidad... pero para que la queres "ver"?? |
Hola a todos:
Como dice jachguate con parámetros nanai de la china como decimos por aqui, pero si no te importa hacerlo concatenando strings, puedes hacerlo así: Código:
query.sql.add('WHERE dni= ' + (variable de dni )); Cita:
Saludos. |
Si es lo que queria, queria tener lo mejor de los dos mundos.. (consultas en tiempo de ejecucion, poder usar parametros y luego ver el SQL remplazado para debuger)
Para que lo queria?? Me parace muy comodo poder usar parametros, hace los sql.add() mas claros (no me gusta poner sql.add('WHERE dni=' + intToSTR(variableDNI)). Pero todo esto deja de tener claridad cuando en tiempo de ejecucion enpezas a intercalar 'if then' con sql.add() para no quere tener casi la misma consulta en dos o mas lugares distintos. Entonces mi GRANN IDEA erra colocar en el: Código:
pero bueno, probare con otra forma... Alguien a probado el rempazar substring (no recuerdo el nombre de pa funcion)? dentro del TStrings del query? Debria andar bien, salvando los casos de como puede tomar los ' ' , " , la sustiucion de fechas y de float. (mas algun otro tipo de tipo que no me viene al mente ahora) voy a ver si pruebo por ese lado..., O mejor aun hacer la sustitucion del Query yo mismo, se supone que hay una lista de parametros con sus tipos y valores.. Pero por ahora segire buscando ',' , ';' y otras cosas tontas entre if anidados :( |
Yo para ver como queda el SQL antes de abrir la consulta hago:
Código:
ShowMessage(MiQuery.SQL.Text); |
Wop!
Hablo de memoria, pero, por lo menos en D6, creo que existe una función para reemplazar textos dentro de una string (creo que es ReplaceText). Puedes montarte una función como esta: Código:
function SqlConParametros(AQuery: TQuery): String; No recuerdo si la propiedad que te da el nombre del parámetro se llama ParamName. Si me ha fallado la memoria y no existe la función ReplaceText, no te costará mucho programarla. |
La franja horaria es GMT +2. Ahora son las 09:20:58. |
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