Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-03-2013
Avatar de pablonill
pablonill pablonill is offline
Miembro
 
Registrado: dic 2006
Posts: 92
Poder: 18
pablonill Va por buen camino
Question Bug en delphi? ParamsByName???

Hola buenas noches!, tengo el siguiente escenario, tengo una base de datos firebird y uso controles dbexpress. Tengo una capa con un SQLQuery donde tengo la siguiente consulta.

Código SQL [-]
SELECT ID_CLIENTE, CONCEPTO, DEBE, HABER, (DEBE - HABER) AS SALDO, FECHA
FROM TCTACTE
WHERE ID_CLIENTE = :ID_CLIENTE

En otra capa tengo un Provider y un ClientDataSet (prefio FetchParams).
Por otro lado tengo un formulario con una grilla que en el evento OnCreate tengo el siguiente codigo.

Código Delphi [-]
CDS.TCtaCte.Close;
CDS.TCtaCte.Params.ParamByName('ID_CLIENTE').AsInteger := CDS.TClientesID_CLIENTE.AsInteger;
CDS.TCtaCte.Open;

Bueno resulta que al abrir la tabla TCtaCte no devuelve nada la consulta, use un SQLMonitor y me devuelve la siguiente consulta.

Código SQL [-]
SELECT ID_CLIENTE, CONCEPTO, DEBE, HABER, (DEBE - HABER) AS SALDO, FECHA
FROM TCTACTE
WHERE ID_CLIENTE = ?

Hasta poniendo el codigo del cliente de forma manual el resultado es el mismo. Aclaro ya hice el FetchParams del lado del ClientDataSet, probe esta consulta en un editor SQL y funciona perfecta.

Espero puedan ayudarme, saludos y muchas gracias por su tiempo.
Responder Con Cita
  #2  
Antiguo 28-03-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
Creo que te falta poner .Value en vez de asInteger

Código Delphi [-]
CDS.TCtaCte.Close;
CDS.TCtaCte.Params.ParamByName('ID_CLIENTE').AsInteger := CDS.TClientesID_CLIENTE.Value;
CDS.TCtaCte.Open;

Saludos
Responder Con Cita
  #3  
Antiguo 28-03-2013
Avatar de pablonill
pablonill pablonill is offline
Miembro
 
Registrado: dic 2006
Posts: 92
Poder: 18
pablonill Va por buen camino
Cita:
Empezado por jafera Ver Mensaje
Creo que te falta poner .Value
Código Delphi [-]
CDS.TCtaCte.Close;CDS.TCtaCte.Params.ParamByName('ID_CLIENTE').AsInteger := CDS.TClientesID_CLIENTE.Value;CDS.TCtaCte.Open;
Saludos
Hola jafera, antes que nada gracias por tu respuesta, puse .Value, hasta probe asi

Código Delphi [-]
CDS.TCtaCte.Close;
CDS.TCtaCte.Params.ParamByName('ID_CLIENTE').AsInteger := 1;
CDS.TCtaCte.Open;

y el mismo resultado, asi lo ponga manual al parametro es lo mismo!, voy a reinstalar delphi y veo si se soluciona. Saludos.
Responder Con Cita
  #4  
Antiguo 28-03-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.105
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por pablonill Ver Mensaje
voy a reinstalar delphi y veo si se soluciona
¿Reinstalar Delphi?
Es lo mismo que si le pones una vela a Santa Tecla
Responder Con Cita
  #5  
Antiguo 28-03-2013
Avatar de pablonill
pablonill pablonill is offline
Miembro
 
Registrado: dic 2006
Posts: 92
Poder: 18
pablonill Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Reinstalar Delphi?
Es lo mismo que si le pones una vela a Santa Tecla
Y bueno, ya no se que hacer!, jaja. Siempre hice asi y ahora no funciona!, o estoy loco o es un bug!, o estoy demasiado cansado como para ver la solucion!
Responder Con Cita
  #6  
Antiguo 28-03-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.105
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Veamos, primero abres el ibexpert, flamerobin o el que uses y escribes la sentencia a mano:
Código SQL [-]
select id_cliente, concepto, debe, haber, (debe-haber) as saldo, fecha 
from tctacte
where id_cliente=1
Lo ejecutas y miras si devuelve valores.

Esperando respuesta...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
updatear mi codigo con paramsbyname Rofocale Varios 3 26-10-2010 01:22:06


La franja horaria es GMT +2. Ahora son las 13:22:22.


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