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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que no se entiende lo que explicas, Angel.Matilla.
Por lógica, si tienes un select que unas veces trae unos datos y otras veces trae otros datos distintos, tan sólo tienes varias posibilidades:

- que no sea el mismo select
- que sea el mismo select, pero los parámetros sean distintos
- que sea el mismo select, y lo ejecutes en bases de datos distintas

No puede haber más opciones, o sea, no puedes ejecutar un select con unos parámetros en una misma base de datos y que te devuelva datos distintos. Lógicamente.

Deberías detener el programa justo antes de lanzar el query y mirar la sentencia completa en ambos casos, para ver si está formada correctamente.

La otra opción es que nos pases la BD y probemos nosotros
Responder Con Cita
  #2  
Antiguo 13-02-2013
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
Gracias prola respuesta Casimiro.
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo que no se entiende lo que explicas, Angel.Matilla.
Lo que he puesto es el código de cómo monto el query.
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por lógica, si tienes un select que unas veces trae unos datos y otras veces trae otros datos distintos, tan sólo tienes varias posibilidades:

- que no sea el mismo select
- que sea el mismo select, pero los parámetros sean distintos
- que sea el mismo select, y lo ejecutes en bases de datos distintas

No puede haber más opciones, o sea, no puedes ejecutar un select con unos parámetros en una misma base de datos y que te devuelva datos distintos. Lógicamente.

Deberías detener el programa justo antes de lanzar el query y mirar la sentencia completa en ambos casos, para ver si está formada correctamente.
Ninguna de las tres opciones que das es correcta: es el mismo select con los mismos parámetros y la misma base de datos. No es que unas veces traiga resultados y otras no, es que dentro del programa no devuelve nada y en IBManager sí. Para comprobarlo paro la ejecución justo antes de hacer el open() y copio el contenido del query para ejecutarlo en IBManager.
Cita:
Empezado por Casimiro Notevi Ver Mensaje
La otra opción es que nos pases la BD y probemos nosotros
No tengo inconveniente en pasarte el programa (está hecho en Builder 5) y la base de datos; dime como y dónde.
Responder Con Cita
  #3  
Antiguo 13-02-2013
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
Añado más cosas. Perdonad que lo haga así, pero según voy haciendo pruebas lo pngo. He probado a montar el código de otra manera.
Ejecuto un bucle para leer los datos de Auxiliar del tipo 1:
AnsiString cAux = "";
Código:
Query->Close();
Query->SQL->Text = "SELECT Valor FROM Auxiliar WHERE Tipo = 1 AND Usuario = :Usuario";
Query->ParamByName("Usuario")->AsString = NombreUser;
Query->Open();
for (; !Query->Eof; Query->Next())
     cAux = cAux + FormatFloat("0', '", Query->FieldByName("Valor")->AsInteger);
cAux = cAux.SubString(1, cAux.LastDelimiter(",") - 1);
Esto la hago para que me quede uan cadena del tipo
Cita:
1, 2, 3, 4
que luego pondré en el query así:
Código:
Query->Close();
Query->SQL->Text = "SELECT * FROM Ls01 WHERE CodPrv = :CodPrv AND Junta IN (" + cAux + ") ORDER BY Apellidos, Nombre";
Query->ParamByName("CodPrv")->AsInteger = nCodPrv;
Query->Open();
¡Y así funciona perferctamente! Lo que pasa que no quisera usar este método porque puede crear verdaderas monstruosidades de código.
Responder Con Cita
  #4  
Antiguo 13-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hombre, yo aseguraría que el problema, como ya dije antes, es que no creas el mismo select o los mismos parámetros. Es pura lógica.
Responder Con Cita
  #5  
Antiguo 13-02-2013
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
Puedo garantizar que es el mismo query (parando la ejecución del prograna JUSTO antes del Open() y copiando el contenido del SQL->Text) y la misma base de datos (no hay otra en Firebird en ese disco).
Responder Con Cita
  #6  
Antiguo 13-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero, Ángel, un mismo sql en una misma base de datos, es imposible que devuelva datos distintos.
Por muchas vueltas que quieras darle, no puede ser.

Salvo que la base de datos esté estropeada y se haya vuelta loca.
Responder Con Cita
  #7  
Antiguo 13-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ya digo, si quieres copia y pega aquí el sql y comprime la BD y la subes también.
Haremos pruebas y compararemos resultados.
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
Query MySQL: ¿Por qué no funciona? Angel.Matilla MySQL 4 27-06-2012 13:08:03
Query Access no funciona con ADO Delfino Conexión con bases de datos 6 15-06-2007 11:05:44
Quiero liberar my query para usar el mismo varias veces zcatzz Conexión con bases de datos 7 27-01-2007 23:39:45
Componente Pdf (PdfLib_TLB) a veces no funciona fidel OOP 1 06-06-2006 14:45:46
autorefresh no funciona en query y dbgrid ilichhernandez Conexión con bases de datos 6 08-11-2005 19:32:00


La franja horaria es GMT +2. Ahora son las 04:14:55.


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