![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
problema al traspasar parametro
Buenas...
es muy probable que este no sea el foro ...mis disculpas si no es asi... tengo el siguiente problema he creado un report de detalle por productos y los datos estan en diferentes tablas : Muebles, vehiculos, edificios. en el report he puesto una query con lo siguiente en sql: select * from :vnombre order by ccosto, fecha la idea es que vnombre se pase como parametro el nombre de la tabla. la query lo acepta como parametro pero al correr la aplicacion me da un tremendo error. estoi mal ? yo creo..... alguien me podria ayudar ? desde ya gracias Luchin |
#2
|
||||
|
||||
Hola,
que yo sepa no puedes pasar el nombre de una tabla como parámetro, quizás si no has parseado previamente el query no te de error, pero al hacer el open es cuando te lo lanza. Lo que quieres hacer, sin embargo, es muy sencillo, solo tienes que establecer la sentencia SQL en tiempo de ejecución: Código:
NombreTabla:= 'Clientes';//ejemplo estúpido Query1.SQL.Text:= 'select * from ' + NombreTabla + 'order by ccosto, fecha'; |
#3
|
|||
|
|||
La solucion que te dieron se puede completar mejor de la siguiente forma:
NombreTabla:= 'Clientes';//ejemplo estúpido // nuevoo Query1.close; Query1.SQL.Clear; Query1.SQL.Text:= 'select * from ' + NombreTabla + 'order by ccosto, fecha'; Es importante que cierres la consulta y borres la anterior sentencia. |
#4
|
||||
|
||||
Buenas,
solo un pequeño comentario, dado que asignamos en la propiedad Text, no es necesario hacer el SQL.Clear, dado que el texto que se asigna ya elimina todo el contenido previo del TStrings. Saludos. |
![]() |
|
|
![]() |
|