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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
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.079
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
  #2  
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
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...
Si, devuelve valores!, e hice un copy/paste de la consulta para probarla desde delphi y lo mismo!, si la pego tal cual como esta sin parametros funciona perfecto desde delphi, pero cuando le agrego
Código SQL [-]
WHERE ID_CLIENTE = :ID_CLIENTE
es el problema. El valor que pasa el parametro es desconocido, asi lo ponga manualmente o lo ponga con
Código Delphi [-]
ParamByName('ID_CLIENTE').Value := 1
Responder Con Cita
  #3  
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.079
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No conozco bien los componentes que estás usando, te aconsejo que hagas una búsqueda por los foros para ver cómo se usan los parámetros con ellos, cualquier ejemplo te servirá.
Además debes asegurarte de que le estás pasando un valor en el parámetro, ¿lo has comprobado?
Responder Con Cita
  #4  
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
Y este parametro, que valor tiene?

Código Delphi [-]
CDS.TClientesID_CLIENTE.Value


No se, igual no toma ningun valor y por esto no te filtra.

Pon un punto de interrupcion o un control watch y mira lo que vale CDS.TClientesID_CLIENTE.Value

Ya dirás más cosas, pues he hecho pruebas y a mi me filtra correctamente.

Saludos

Edito: Casimirio se ha adelantado, hemos escrito a la vez

Josep

Última edición por jafera fecha: 28-03-2013 a las 13:17:24. Razón: Casimiro es el más rápido del oeste, yo ya estría muerto
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
Gracias por su tiempo!, ya hice un break point y un debug del proceso!, el valor que pasa es 1, hasta puse el valor manualmente. Lo mas extraño es que siempre lo use así y nunca tuve un problema hasta ahora!, por eso hablaba de "bug".
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.079
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Entonces cuál es el problema?, ¿que no se muestran en un dbgrid?
Responder Con Cita
  #7  
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
¿Entonces cuál es el problema?, ¿que no se muestran en un dbgrid?
Aparte de no mostrarse en un DBGrid, no devuelve ningún registro!, hice un RecordCount, y no devuelve nada!, con el SQLMonitor me devuelve la consulta sin valor en el parametro, o sea que el problema es que no me esta pasando el valor al parametro.

Esto me devuelve el SQLMonitor

Código SQL [-]
SELECT ID_CLIENTE, CONCEPTO, DEBE, HABER, (DEBE - HABER) AS SALDO, FECHA
FROM TCTACTE
WHERE ID_CLIENTE = ?
Responder Con Cita
  #8  
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.079
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero si dices que lo pones manualmente, entonces ahí no cuenta para nada los parámetros.
O sea, si tú escribes:

Código SQL [-]
select ....
from tctacte
where id_cliente = 1
Y ejecutas el programa, ahí no estás pasando ningún parámetro, por lo que debería de funcionar.
En caso contrario te aconsejo que quites los componentes que estás usando y vayas pasito a pasito, asegurándote de que lo haces bien en cada uno de esos pasitos.
Responder Con Cita
  #9  
Antiguo 29-03-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por pablonill Ver Mensaje
Esto me devuelve el SQLMonitor

Código SQL [-]
SELECT ID_CLIENTE, CONCEPTO, DEBE, HABER, (DEBE - HABER) AS SALDO, FECHA
FROM TCTACTE
WHERE ID_CLIENTE = ?
El signo de interrogación es normal (significa que se está empleando un parámetro).

Usa el evento AfterOpen del TSQLQuery para revisar si hay o no hay datos en el registro actual y cuál es el valor del parámetro (con la propiedad Params del TSQLQuery). También, revisa que la propiedad PacketRecords del TClientDataSet sea -1 y no 0 (cuando es 0 sólo trae de la base de datos información de estructura).

Además, puedes revisar si no hay algún filtro activo en cualquiera de los dos conjuntos de datos (el TSQLQuery y el TClientDataSet), si realmente se está accediendo a la base de datos que tú quieres (y no a una copia), que todos los componentes involucrados estén debidamente relacionados, y que no estés modificando formularios, módulos de datos o unidades que están abiertos en el IDE y se llaman como los de tu proyecto, pero que en realidad pertenecen a otra carpeta.

Ya verás como resulta ser alguna cuestión menor de ese estilo.

P.D. Veo que ya lo solucionaste "a la brava".
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

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 19:23:32.


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