Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > OOP
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 06/08/2007
GerTorresM's Avatar
GerTorresM GerTorresM is offline
Miembro
 
Join Date: Nov 2005
Location: Tunja - Boyacá
Posts: 210
Poder: 21
GerTorresM Va por buen camino
Cool Crear una Consulta Tquey con parámetros

Hola a todos

Estoy intentando crear un consulta que maneja parámetros, para el efecto empleo el siguiente codigo:

Code:
 QDisponibilidades:= Tquery.Create(self);
 with QDisponibilidades do
   begin
     DatabaseName:= 'DBMilenium';
     close;
      sql.Clear;
      sql.Add(' SELECT Disponibilidad.CodigoDisponibilidad,  Disponibilidad.FechaExpedicion, Disponibilidad.Objeto, Disponibilidad.Valor, AnteproyectoGastos.CodigoPresupuestal '+
              ' FROM (Recurso INNER JOIN (AnteproyectoGastos INNER JOIN GastosRecursos ON AnteproyectoGastos.CodigoPresupuestal = GastosRecursos.CodigoPresupuestal) ON Recurso.CodigoRecurso = GastosRecursos.CodigoRecurso) INNER JOIN '+
              ' (Disponibilidad INNER JOIN DisponibilidadRubro ON Disponibilidad.CodigoDisponibilidad = DisponibilidadRubro.CodigoDisponibilidad) ON (AnteproyectoGastos.CodigoPresupuestal = DisponibilidadRubro.CodigoPresupuestal) AND '+
              ' (Recurso.CodigoRecurso = DisponibilidadRubro.CodigoRecurso) '+
              ' WHERE AnteproyectoGastos.CodigoPresupuestal=:CodigoPresupuestal'
              ' order by Disponibilidad.CodigoDisponibilidad');
      try
        ParamaByName('CodigoPresupuestal').Value:= ECodigoPresupuestal.Text;
        Open;
       if RecordCount < 1 then
           MessageDlg('No existen dispobilidades con este rubro',MTInformation,[MbOk],0);
      Except
      end;
end;
Bien el caso en concreto es el siguiente:

Cuando ejecuto el código, me envia una error, por que no existe el párametro, entonces como puedo crear el parametro antes de ejecutar la consulta?


Gracías de Antemano

GertorresM
Colombia
Reply With Quote
  #2  
Old 06/08/2007
Caral's Avatar
[Caral] Caral is offline
Miembro Premium
 
Join Date: Aug 2006
Posts: 7,659
Poder: 28
Caral Va por buen camino
Hola
Sin saber que base de datos usas, que componentes es un poco dificil, ya que en access pasan cosas diferentes que en sql u firebird en cuanto a parametros.
Por curiosidad coloca la sentencia sql en el sql string del query, esto creara el parametro, ejecutalo de nuevo, tal vez camine.
Saludos
Reply With Quote
  #3  
Old 06/08/2007
GerTorresM's Avatar
GerTorresM GerTorresM is offline
Miembro
 
Join Date: Nov 2005
Location: Tunja - Boyacá
Posts: 210
Poder: 21
GerTorresM Va por buen camino
Wink Re.

En la actualidad estoy utilizando lo siguiente

Delphi 6 Enterprise
Conexion Mediante BDE
Base de Datos MS Access

y aprovecho para preguntarte lo mismo cuando uso PostGreSQL, mediante el empleo de herramientas Zeos
Reply With Quote
  #4  
Old 06/08/2007
egbaquela egbaquela is offline
Miembro
 
Join Date: Jul 2007
Posts: 21
Poder: 0
egbaquela Va por buen camino
Crear una Consulta Tquey con parámetros

Posiblemente sea un error al copiar el código, pero la propiedad "ParamByName" la escribiste mal, quizas sea eso.
Igual trata de usar espacios entre el '=' y el ':' en la sentencia SQL (donde referencias al parámetro), a veces lo interpreta mal.
Saludos, Gabriel.
Reply With Quote
  #5  
Old 06/08/2007
Amos Amos is offline
Miembro
 
Join Date: Aug 2007
Location: mexico
Posts: 19
Poder: 0
Amos Va por buen camino
Hola GerTorresM cuando yo uso este tipo de parametros lo que hago es definir el tipo de dato, dependiendo de la columna en tu BD.

Supongo que tu columna CodigoPresupuestal es de tipo String entonces la columna es como String, por lo tanto sería:

Código Delphi [-]
ParamaByName('CodigoPresupuestal').AsString:= ECodigoPresupuestal.Text;

Espero te ayude.
__________________
"... cuando Dios venga a la tierra
y mire a los hombres llorar,
él preferirá la muerte para ti..."(Especimen)
Reply With Quote
  #6  
Old 06/08/2007
GerTorresM's Avatar
GerTorresM GerTorresM is offline
Miembro
 
Join Date: Nov 2005
Location: Tunja - Boyacá
Posts: 210
Poder: 21
GerTorresM Va por buen camino
Wink Tema Concluido

Gracias por toda la colaboración dada, al parecer era un error al digitar el código, lo he corregido y funciona de las mil maravillas, aprovecho para lanzar otra pregunta:

cuando se ejecuta la consulta ésta llena un DBGrid, un de los campos es de fecha y se la llenado previamente con un DateTimePicker, por lo tanto el registro guarda la hora y fecha, bien en el grilla de datos (DBGrid) aprece en este campo tanto hora como fecha, como podría establer una mascara para la fecha si los campos que llenan el dbgrid propienen de la consulta que estaba creando anteriormente.


Gracias de Antemano


GerTorresM
Colombia
Reply With Quote
  #7  
Old 06/08/2007
ContraVeneno's Avatar
ContraVeneno ContraVeneno is offline
Miembro
 
Join Date: May 2005
Location: Torreón, México
Posts: 4,740
Poder: 26
ContraVeneno Va por buen camino
Un comentario nada más. Como supongo ya sabes, puedes agregar una sentencia SQL a un TQuery utilizando la propiedad Text, o en tu caso, utilizando la función Add, la diferencia entre uno y otro, es que Text te lo pone todo en una sola línea de texto y utilizando Add, la instrucción estará dividida en líneas.

En tu caso, estas utilizando Add como se utilizaría Text, perdiendo así la ventaja que tiene Add sobre Text, vamos, que es como tener un coche y nunca usarlo.

Yo te recomendaría que utilizaras Add en cada línea de la instrucción SQL:
Código Delphi [-]
  

sql.Add(' SELECT Disponibilidad.CodigoDisponibilidad,  Disponibilidad.FechaExpedicion, Disponibilidad.Objeto, Disponibilidad.Valor, AnteproyectoGastos.CodigoPresupuestal ');
sql.Add(' FROM (Recurso INNER JOIN (AnteproyectoGastos INNER JOIN GastosRecursos ON AnteproyectoGastos.CodigoPresupuestal = GastosRecursos.CodigoPresupuestal) ON Recurso.CodigoRecurso = GastosRecursos.CodigoRecurso) ');
SQL.Add(' INNER JOIN (Disponibilidad INNER JOIN DisponibilidadRubro ON Disponibilidad.CodigoDisponibilidad = DisponibilidadRubro.CodigoDisponibilidad) ON (AnteproyectoGastos.CodigoPresupuestal = DisponibilidadRubro.CodigoPresupuestal) ');
SQL.Add(' AND (Recurso.CodigoRecurso = DisponibilidadRubro.CodigoRecurso) ');
sql.Add(' WHERE AnteproyectoGastos.CodigoPresupuestal=:CodigoPresupuestal');
sql.Add(' order by Disponibilidad.CodigoDisponibilidad');
__________________

Reply With Quote
  #8  
Old 06/08/2007
GerTorresM's Avatar
GerTorresM GerTorresM is offline
Miembro
 
Join Date: Nov 2005
Location: Tunja - Boyacá
Posts: 210
Poder: 21
GerTorresM Va por buen camino
Smile Gracias por el consejo

Muchas gracias por tu consejo, estoy seguro que esto facilitara el manetnimiento del código


GerTorresM
Reply With Quote
  #9  
Old 07/08/2007
Amos Amos is offline
Miembro
 
Join Date: Aug 2007
Location: mexico
Posts: 19
Poder: 0
Amos Va por buen camino
Post

Si quieres mostrar solo la fecha en una columna en el DBGrid entonces:

Tienes que agregar las columnas a tu Query para conseguir modificar la forma en que se muestran las columnas, esto se consigue realizando un doble-clic en el TQuery

Despues con el botón derecho en el dialogo que se muestra utilizar "Add fields...". Seleccionas las columnas que desees.

Entonces edita la propiedad "DisplayFormat" y le colocas una mascara como esta :"dd/mmm/yyyy", con esto consigo que se muestra la columna fecha como "12/May/2007"

Espero que te sirva y que me entiendas
__________________
"... cuando Dios venga a la tierra
y mire a los hombres llorar,
él preferirá la muerte para ti..."(Especimen)
Reply With Quote
  #10  
Old 08/08/2007
GerTorresM's Avatar
GerTorresM GerTorresM is offline
Miembro
 
Join Date: Nov 2005
Location: Tunja - Boyacá
Posts: 210
Poder: 21
GerTorresM Va por buen camino
Talking Gracias por las respuestas

Gracías por tu tiempo y por la respuesta, si cuando trabajas bajando los componentes de las barra de herramientas, es muy funcional la aplicación de lo escrito en tu respuesta, pero cuando estas creando el objeto en tiempo de ejecución resulta poco aplicable.

Lo que sucede en este caso es que la consulta puede llegar a variar ya que la escribe el usuario, entonces como te das cuenta no sabes los nombres de los campos resultantes y muchos menos los tipos de datos que te devuleve.

Desde este punto de vista es que pregunto si puedo de alguna manera agregar los campos y establecer de acuerdo al tipo de dato manejado algún tipo de formato de datos.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
consulta con parametros fecha didier MySQL 2 02/08/2006 15:58
Parametros integer en consulta php jgutti PHP 2 14/06/2006 21:16
Parametros en Consulta SQL joi Varios 2 31/10/2005 19:36
ayuda con parametros en consulta ronimaxh Varios 3 10/03/2005 20:04
consulta con parametros en blanco merlin SQL 2 02/12/2003 16:13


All times are GMT +2. The time now is 12:34.


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