Ver Mensaje Individual
  #6  
Antiguo 14-08-2014
Yugo Yugo is offline
Miembro
NULL
 
Registrado: jul 2014
Posts: 25
Reputación: 0
Yugo Va por buen camino
Hola, si me lo permitís voy a responderos a ambos en este mismo mensaje para no sobrecargarlo.

ecfisa, muchas gracias por la bienvenida y la información que me aportas. Procuraré usar las etiquetas que mencionas para escribir código en futuras ocasiones. También decirte que entiendo que al usar la instrucción:

Cita:
SELECT * FROM tabla1 WHERE tabla1.Frec1 = tabla2.Frec2.x AND tabla1.Id1 = tabla2.Id2.x ORDER BY Nombre1
en el Query1 está el/los resultados de dicha consulta bajo las condiciones del WHERE. Sin embargo, la idea no es recorrer dichos resultados, sino coger el dato del campo Nombre del primero de ellos. Lo que debo recorrer son los campos de la tabla2 (pares Frec2.x---Id2.x), de ahí la duda de dónde usar el código para ir recorriendo cada registro de dicha tabla mediante el TDBNavigator.

lmpadron, debo decirte que como estoy experimentando con esto, estoy usando un TDBGrid3 para visualizar los resultados de la consulta SQL (para comprobar visualmente si los resultados de la consulta se adecúan a lo que busco). Pero la idea de usar tantos TLabels es porque, al mismo tiempo que visualizo los registros originales de la tabla2 en otro TDBGrid2, también necesito hacer visible que las cosultas se realizan correctamente, puramente informal.

La cuestion es que escribo el siguiente código en un botón (a modo de prueba para comprobar si funciona o no) sólo para comprobar posibles coincidencias únicamente en el primer par de campos de la tabla2 (Frec2.1---BSIC):
Código:
  Query1->Close();
  Query1->SQL->Clear();

  Query1->SQL->Add("SELECT * ");
  Query1->SQL->Add("FROM tabla1 ");
  Query1->SQL->Add("WHERE tabla1.BSIC = tabla2.BSIC ");  
  //He renombrado el campo Id1 de la tabla1 a BSIC y el campo Id2.1 de la tabla2 tambien a BSIC por simple comodidad.
  //Los campos BSIC de ambas tablas son del mismo tipo (A) y mismo tamaño (6). 
  Query1->SQL->Add("AND tabla1.Frec1 = tabla2.Frec2.1 ");
  Query1->SQL->Add("ORDER BY Nombre1");

  Query1->Open();
y me salta la siguiente excepción:
Cita:
Exception class EDBEngineError with message 'Invalid field name.BSIC'
He probado de todo, y no doy con la tecla. A ver si vosotros veis algo que yo no veo. Así que de momento estoy tratando de solucionar este inconveniente, para posteriormente ya poder realizar el resto de consultas (mediante el bucle) para el resto de pares de campos de un registro de la tabla2 y luego poder aplicar ello para cuando cambie de un registro a otro en la tabla2.

Muchas gracias. Un saludo!!
Responder Con Cita