Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-12-2005
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Problemas con Tquery

Hola amios del foro, me sucede algo raro. Sucede qu tengo en una unidad un codigo que genera un resultado en base a una cadena SQL que se le envia.
Código:
 
function obtenerSQL(txtquery:string):Tquery;
querysql.DatabaseName:=cnconexion;
querysql.SQL.Add(txtquery);
querysql.Open;
result:=querysql;
end;
de manera que cuando creo mi query en tiempo de ejecucion desde mi formulario lo invoco asi :

Código:
 SQLquery:=Tquery.Create(self); 
SQLquery:=ObtenerSQL(cadena);
SQLsource:=Tdatasource.Create(self);
SQLsource.DataSet:=SQLquery;
DbRUCprov.DataSource:=SQLsource; // Grid
Todo normal hasta aqui ,pero cuando jalo un TQuery y quiero hace lo mismo no me pinta nada. Aque se puede deber esto?

Código:
 
query1:=ObtenerSQL(cadena);  // query1 Tquery creado en tiempó de diseño
Responder Con Cita
  #2  
Antiguo 26-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Brrrr... Feo, feo, feo...
Estas creando un objeto en una variable global (supongo) y luego en la mismo bloque de ejecución una función te lo devuelve... ¿Con qué sentido complicar así las cosas?
No me agrada pero no sería mejor pasar por referencia el TQuery a la función obtenerSQL

Código Delphi [-]
procedure OpenQuery(var AQuery: TQuery; const ASql: string);
begin
  AQuery.DatabaseName:=cnconexion;
  AQuery.Sql.Text := ASql;
  AQuery.Open;
end;

Cita:
Empezado por Coco_jac
cuando jalo un TQuery y quiero hace lo mismo no me pinta nada.
¿Que quieres decir con esto?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 26-12-2005
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Gracias por el consejo , tienes toda la razon imagina que se genere como respuesta 20,000 para exagegar tener que devolver esa cantidad seria demasido a cabo de cambiarlo como me aconsejaste.

Con lo de jalar me refiero que coloco un Tquery en mi formulario y quiero hacer lo mismo es decir asignarle en query=obtenerSQL(cadena), pero no mostraba nada en el DBgrid, a diferencia de un query creado en tiempo de ejecucion que si lo hacia.
Responder Con Cita
  #4  
Antiguo 26-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Coco_jac
Gracias por el consejo , tienes toda la razon imagina que se genere como respuesta 20,000 para exagegar tener que devolver esa cantidad seria demasido a cabo de cambiarlo como me aconsejaste.
No viene por ahí el problema, suponiendo que te refieres a cantidad de registros. En ambos casos es lo mismo, pero no tiene sentido llamar desde un procedimiento a una funcion que te retorna algo que es visible desde el procedimiento de la llamada.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 26-12-2005
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
segui tu consejo ya modifique todo eso
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:23:39.


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
Copyright 1996-2007 Club Delphi