Ver Mensaje Individual
  #5  
Antiguo 13-02-2013
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Explico el proceso completo. Este query lo uso para generar unos listados y la consulta depende de las opciones que elige el usuario, pero la SELECT es la misma en todos los casos. Esa tabla Auxiliar la uso para guardar los valores que se escogen en el formulario (por ejemplo el código de población) y monto esto:
Código:
Query->Close();
Query->SQL->Text = "SELECT * FROM Ls01 A";

qAuxil->Close();
qAuxil->SQL->Text = "SELECT DISTINCT Tipo FROM Auxiliar WHERE Usuario = :Usuario";
qAuxil->ParamByName("Usuario")->AsString = NombreUser;                    
qAuxil->Open();
for (; !qAuxil->Eof; qAuxil->Next())
     Query->SQL->Text = Query->SQL->Text + ", Auxiliar " + CHAR(65 + fPersonas->qAuxil->FieldByName("Tipo")->AsInteger);
Query y qAuxil son sendos TIBQuery y en la tabla Auxiliar sólo se guardan dos tipos: 1 y 2. De esta forma, si hubiera valores de ambos tipos, el query sería por ejemplo:
Código:
SELECT * FROM Ls01 A, Auxiliar B, Auxiliar C
WHERE A.CodPrv= :CodPrv
AND B.Tipo = 1 AND B.Usuario = :Usuario AND A.Profesion = B.Valor
AND C.Tipo = 2 AND C.Usuario = :Usuario AND A.Junta = C.Valor
El programa se ejecuta sin errores; he probado todos los casos para la tabla Auxiliar: sin datos, sólo con un tipo de datos (bien 1 bien 2) y con ambos tipos. En todos los casos el query se monta bien, pero al ejecutarlo es como si la tabla Auxiliar se hubiera vaciado y no es así. En ningún punto del código se hace un DELETE sobre dicha tabla.
Responder Con Cita