![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola ecfisa, tu código está genial. El resultado de la búsqueda devuelve las posibles coincidencias entre los pares ID1/RE1 de la TABLA1 con todos los pares IDx/REx de la TABLA2 listando todos los nombres coincidentes en ese registro actual. Pero lo que estoy tratando de averiguar, basándome en ese código sería tratar cada par IDx/REx como un par independiente del resto de pares de la TABLA2. ¿Para qué hacer eso? Pues al considerar dichos pares como independientes unos de otros, tomo el primero de ellos, busco posibles coincidencias con la TABLA1 y si las hay, sólo me interesa coger el primer nombre del resultado de la consulta (por ejemplo, añadiendo en la TABLA1 que me facilitas otro registro como [Armando]-[1]-[1] habría dos registros con el mismo ID1-RE1 pero con nombre distinto). Entonces, si nos situamos sobre un registro cualquiera de la TABLA2, empezamos con una primera consulta sobre el primer par independiente ID1-RE1 de la TABLA2:
Código:
QueryNames->Close();
QueryNames->SQL->Clear();
QueryNames->SQL->Add("SELECT T1.NOMBRE");
QueryNames->SQL->Add("FROM TABLA1 T1 JOIN TABLA2 T2 ON T2.ID = :PID AND");
QueryNames->SQL->Add("(T1.ID1 = T2.ID1 AND T1.RE1 = T2.RE1)");
QueryNames->SQL->Add("ORDER BY Nombre");
QueryNames->ParamByName("PID")->AsInteger = QueryTabla2->FieldByName("ID")->AsInteger;
QueryNames->Open();
Después de esto, pasaría al segundo par independiente de la TABLA2 (con los campos ID2-RE2) para volver a realizar la consulta en busca de posibles coincidencias con la TABLA1: Código:
QueryNames->Close();
QueryNames->SQL->Clear();
QueryNames->SQL->Add("SELECT T1.NOMBRE");
QueryNames->SQL->Add("FROM TABLA1 T1 JOIN TABLA2 T2 ON T2.ID = :PID AND");
QueryNames->SQL->Add("(T1.ID1 = T2.ID2 AND T1.RE1 = T2.RE2)");
QueryNames->SQL->Add("ORDER BY Nombre");
QueryNames->ParamByName("PID")->AsInteger = QueryTabla2->FieldByName("ID")->AsInteger;
QueryNames->Open();
Y así sucesivamente para los 13 pares de forma independientes. Yo he tratado de hacer un bucle for de 13 repeticiones tal que así: Código:
for(int x = 1; x <= 13; x++) {
QueryNames->Close();
QueryNames->SQL->Clear();
QueryNames->SQL->Add("SELECT T1.NOMBRE");
QueryNames->SQL->Add("FROM TABLA1 T1 JOIN TABLA2 T2 ON T2.ID = :PID AND");
QueryNames->SQL->Add("(T1.ID1 = T2.ID"+IntToStr(x)+" AND T1.RE1 = T2.RE"+IntToStr(x)+")"); //(T1.ID1 = T2.IDx AND T1.RE1 = T2.REx)
QueryNames->SQL->Add("ORDER BY Nombre");
QueryNames->ParamByName("PID")->AsInteger = QueryTabla2->FieldByName("ID")->AsInteger;
QueryNames->Open(); //Aquí tomaría el primer nombre del resultado
}
Última edición por ecfisa fecha: 26-08-2014 a las 20:35:38. Razón: corregir problema WYSWYG |
|
#2
|
|||
|
|||
|
Hola chicos!! después de hacer varias pruebas, gracias a vuestra ayuda he podido conseguir lo que buscaba en un principio con el siguiente código situado en el evento OnDataChange del TDataSource2:
Código:
for(int x = 1; x <= 13; x++)
{
Query2->Close();
Query2->SQL->Clear();
Query2->SQL->Add("SELECT T1.NOMBRE");
Query2->SQL->Add("FROM TABLA1 T1 JOIN TABLA2 T2 ON T2.ID = :PID AND");
//(T1.ID1 = T2.IDx AND T1.RE1 = T2.REx)
Query2->SQL->Add("(T1.ID1 = T2.ID"+IntToStr(x)+" AND T1.RE1 = T2.RE"+IntToStr(x)+")");
Query2->SQL->Add("ORDER BY Nombre");
Query2->ParamByName("PID")->AsInteger = Query1->FieldByName("ID")->AsInteger;
Query2->Open();
if(!Query2->FieldByName("Nombre")->AsString.IsEmpty()) //Si la consulta devuelve un resultado
{
//aquí quiero cambiar la propiedad Caption del TLabel que corresponde a Label[x] ya previamente situado
//en el Form.
}
else
{
//No hacemos nada. No modificar la propiedad Caption que previamente tiene el TLabel nº [x]
}
}
Labelx ..... [Label1..Label13]. Gracias de nuevo. |
|
#3
|
||||
|
||||
|
Hola Yugo.
Me alegro mucho que hayas solucionado ese tema, pero por favor publica esta nueva consulta en un nuevo hilo como indica la guía de estilo ![]() Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#4
|
|||
|
|||
|
De acuerdo ecfisa. Voy a ello y muchas gracias por vuestra ayuda!!
|
|
#5
|
||||
|
||||
|
hahaha que gusto ver que encontraste la solución !!!, disculpen por desaparecer toda la semana pasada pero estaba "fuera de toda tecnología" en un curso !!!. Saludos Yugo, Ecfisa
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Migrar version BCB6 | Toni | C++ Builder | 6 | 20-10-2014 14:44:32 |
| TurboPower Systool bcb6 | eldonfsr | C++ Builder | 0 | 15-01-2008 04:11:35 |
| Coincidencia?? | vtdeleon | Debates | 2 | 28-04-2006 13:43:17 |
| Exportación de datos de Excel a Tablas Paradox | Mone | Conexión con bases de datos | 1 | 31-10-2005 21:15:40 |
| Como buscar en una tabla Paradox ? | gregorio | Tablas planas | 2 | 25-04-2005 18:54:29 |
|