Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2015
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Query en FB devuelve cero registros

Buenas. A ver si alguien me puede ayudar. Estoy tarabjabdo con C++ 6.

Tengo un tabla en FB que cargo a partir de un ListView con este bucle:
Código:
Query1->Close();
Query1->SQL->Text = "INSERT INTO Emision (Referencia, Fecha, RefInt, PerPago, Importe, Recibos) VALUES (:Referencia, :Fecha, :RefInt, -1, :Importe, :Recibos)";

Query2->Close();
Query2->SQL->Text = "SELECT * FROM Recibos WHERE CodPrv = :CodPrv AND Referencia = :Referencia AND RefInt = :RefInt";

for (nItem = 0; nItem < Lista->Items->Count; nItem ++)
{
     if (!Lista->Items->Item[nItem]->Checked)
          continue;

     Query2->Close();
     Query2->ParamByName("CodPrv")->AsInteger    = ProvTit;
     Query2->ParamByName("Referencia")->AsString = Lista->Items->Item[nItem]->SubItems->Strings[5];
     Query2->ParamByName("RefInt")->AsString     = Lista->Items->Item[nItem]->SubItems->Strings[6];
     Query2->Open();

     Query1->Close();
     Query1->ParamByName("Referencia")->AsString = Lista->Items->Item[nItem]->SubItems->Strings[5];
     Query1->ParamByName("Fecha")->AsDateTime    = fGenRec->F_cargo->Date;
     Query1->ParamByName("RefInt")->AsString     = cRefInt;
     Query1->ParamByName("Importe")->AsFloat     = fPersona->Auxiliar->FieldByName("Importe")->AsFloat;
     Query1->ParamByName("Recibos")->AsString    = Lista->Items->Item[nItem]->SubItems->Strings[6];
     Query1->ExecSQL();
}
La carga la hace bien ya que una vez que se ejecuta el bucle que recorre el ListView la tabla tiene datos; de hecho si ejecuto este query con IBManager:
Código:
SELECT DISTINCT Referencia FROM Emision WHERE RefInt = :RefInt AND PerPago = -1
me devuelve las filas que debe (9 en la prueba que estoy haciendo). Pero si lo ejecuto desde el programa, exactamente el mismo query sobre la misma tabla, me devuelve cero filas. ¿A alguien se le ocurre por qué?
Responder Con Cita
  #2  
Antiguo 18-09-2015
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y si cierras el programa y lo vueleves a abrir, ¿se ven los registros?

// Saludos
Responder Con Cita
  #3  
Antiguo 18-09-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Seguramente los parametros

Proba sin parametros
Proba con parametros "hard-coded". Es decir, reemplaza los parametros de la sentencia SQL por valores estaticos dentro del string, para ver que devuelve
Responder Con Cita
  #4  
Antiguo 18-09-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
O te has conectado a otra base de datos
Responder Con Cita
  #5  
Antiguo 19-09-2015
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Proba sin parametros
Eso no lo he hecho. Tienes razón.
Cita:
Empezado por Casimiro Notevi Ver Mensaje
O te has conectado a otra base de datos
Si fuera así tampoco cargaría la tabla, cachondo.
Responder Con Cita
  #6  
Antiguo 19-09-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Angel.Matilla Ver Mensaje
Si fuera así tampoco cargaría la tabla, cachondo.
Estaba pensando en una copia de la base de datos
Responder Con Cita
  #7  
Antiguo 19-09-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Angel.Matilla.
Cita:
Empezado por Angel.Matilla Ver Mensaje
...
La carga la hace bien ya que una vez que se ejecuta el bucle que recorre el ListView la tabla tiene datos; de hecho si ejecuto este query con IBManager:
Código:
SELECT DISTINCT Referencia FROM Emision WHERE RefInt = :RefInt AND PerPago = -1
me devuelve las filas que debe (9 en la prueba que estoy haciendo). Pero si lo ejecuto desde el programa, exactamente el mismo query sobre la misma tabla, me devuelve cero filas. ¿A alguien se le ocurre por qué?
Tratándose de la misma consulta sobre la misma tabla no tendría que suceder..., te consulto:
  • Para hacer la prueba desde C++ Builder, ¿ usas un nuevo Query para ese fin u otro de los anteriores ?
  • ¿ Podrías poner la copia fiel del código que usas desde C++ Builder ? (incluyendo los tipos de variables si parametrizas)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 19-09-2015
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 21
Toni Va por buen camino
Hola Angel,

No termino de entender la comparacion que realizas con la consulta que haces en el IBManager, ya que en este consultas la tabla 'Emision' y en el programa esta tabla no la consultas sino que le insertas.. La que consultas es la 'Recibos'.

Aparte de esto yo probaria lo que te comentan de probar con parametros "hard-coded" y ver que sucede y tambien pondria algun codigo para verificar y mostrar que parametros estan llegando al Query2 en cada momento y ver si despues de ejecutar el Query2->Open el resultado de la operacion.

Suele ser el tipico caso de algo que damos por supuesto no se esta cumpliendo (como los parametros). Tambien comprueba si estos objetos Query los utilizas en algun otro sitio y has realizado algun cambio.....de base de datos o asi.

PD: Aun queda gente programando en BCB 6.....no estoy solo en el hiper espacio
__________________
Saludos,

Bitman
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
La funcion last_insert_id de my sql devuelve siempre cero frandigo77 MySQL 4 24-09-2014 17:24:51
Consulta SQL devuelve registros duplicados Malau SQL 5 26-05-2011 02:47:50
como se si un query devuelve o no resultados? ale_metall SQL 3 18-11-2008 07:57:48
TIBQuery no devuelve todos los registros rochi SQL 0 27-02-2005 19:25:49
Limitar los registros que devuelve una consulta roman Conexión con bases de datos 1 03-09-2004 09:08:45


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


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