FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
TQuery dentro de una funcion Function
Hola, estoy realizando una aplicacion para una base de datos, lo que deseo es llamar solamente a la funcion(dentro de esta denomino a q TQuery) con la consulta(sql) y la base de datos(db).
el codigo es el sgte. Código:
function consulta(db:String;sql:String):String; var q:TQuery; begin TQuery.Create(nil); q.DataBaseName:=db; q.close; q.sql.clear; q.sql.add(sql); q.open; end; Gracias... |
#2
|
||||
|
||||
Aquí te pongo un ejemplo que he probado con una rejilla para visualizar los datos y ver que funciona correctamente.
Necesitas: Un TdataSet Una Rejilla conectada al anterior.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
Hola compañeros, tengo unas preguntas sobre el código expuesto:
Marcos, ¿Qué pasa con el objeto TQuery si pulsas varias veces el botón?, ¿Cuando se libera la memoria asignada a la variable q? jorjito, ¿Realmente hace falta que sea una función? Creo que lo que quieres es cambiar el SQL de la consulta y lanzarla, ¿no? Yo pondría un componente TQuery en el formulario y definiría un método para inicializar y lanzar la consulta:
Salu2.
__________________
Progress Openedge https://abevoelker.com/progress_open...dered_harmful/ Delphi forever... |
#4
|
||||
|
||||
Bueno, lo primero decir que yo también soy partidario de utilizar un componente Tquery estático y pasarle el SQL en tiempo de ejecución, pero como la pregunta era esa respondí a la que se preguntaba.
Se supone que en el formulario hemos puesto en el evento OnClose: Action:=CaFree; Con lo cual cuando se cierre el mismo se destruirá todo su contenido. En cuanto a pulsar repetidas veces el botón no le veo ningún problema más que la constante reasignación de la variable q. Se puede hacer que dicho botón una vez pulsado quede como no disponible así evitaríamos las repetidas pulsaciones y el rearme de la consulta.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
||||
|
||||
Resp
Sin leer mas codigo sino el inicial.
Veo que no hay problemas si no que de que te sirve lo que hacer si no puedes acceder a el resultado ya que se esta quedando dentro de la funcion esto es valido para consulta d eaccion como insert , delete o update para un select deves devolver los resultados y para eso tienes dos opcion una que la function devuelva un tibquiery y la otra es pasarle el ib query y que este sea devuelto por referecia la primera opcion tiene el problema que el objeto se crea dentro y debes liberarlo fuera y la otra es que el objeto debe ser creado antes de ser padao tu decides.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|