Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Ordenar por campo lookup (https://www.clubdelphi.com/foros/showthread.php?t=6628)

xerkan 15-01-2004 19:14:22

Ordenar por campo lookup
 
Tengo una tabla en interbase asociada a una query a la cual le he añadido un nuevo campo de tipo lookup para q me muestre el campo nombre que esta en otra tabla segun si su codigo coincide con el que esta en la tabla asociada a la query, el problema es que quiero poder mostrar en un grid los datos de la tabla y que los pueda mostrar ordenados por el nombre que coje de la segunda tabla (estilo select * from tabla order by nombre) pero al ser un campo lookup no se puede ordenar con un order by

__cadetill 16-01-2004 00:23:07

Lo que quieres hacer sólo lo conseguirás si haces una Query con una join entre las dos talbas y entonces utilizar el order by

Algo así más o menos

Código:

select *
from tabla1 a
  join tabla2 b on (b.campounion = a.campounion)
where lo que sea
order by nombre


xerkan 16-01-2004 08:58:06

Bien ahora vamos a complicarlo un poquitin mas como podria hacerlo si las dos tablas se encuentran en bases de datos distintas??

una en db1.fdb y la otra en db2.fdb

__cadetill 16-01-2004 09:31:12

si accedes a las bases de datos mediante el BDE, mírate lo que dice la ayuda del Local SQL sobre las Heterogeneous joins

Cita:

Joins two tables from different databases.

SELECT column_list

FROM ":database_reference:table_reference", ":database_reference:table_reference" [,":database_reference:table_reference"...]

WHERE predicate [AND predicate...]

Description

Use a heterogeneous join to join two tables that reside in different databases. The joined tables may be of different types (like dBASE to Paradox or Paradox to InterBase), but you can only join tables whose database types are accessible through the BDE (local, ODBC, or SQL Links). A hetergeneous join may be any of the joins supported by local SQL. The difference is in the syntax for the table reference: the database containing each table is specified in the table reference, surrounded by colons and the whole reference enclosed in quotation marks. The database specified as part of the table reference may be a drive and directory reference (for local tables) or a BDE alias.

SELECT *

FROM ":DBDEMOS:Customer.db" C, ":BCDEMOS:Orders.db" O

WHERE (C.CustNo = O.CustNo)
Espero te sirva

xerkan 16-01-2004 09:53:50

El problema es q no hacedo mediante BDE sino por las IBOObject y no se cual sera su equivalente en este caso a database_reference.

A la base de datos accedo mediante un TIB_connection el cual tiene como referencia para acceder: 172.26.0.7:/datos/bd.fdb (uso dialecto 3)

__cadetill 16-01-2004 09:59:08

No se con IBO ya que nunca los he utilizado, pero con IBX o FIBPlus no se puede. Lo de las Heterogeneous joins es una característica del BDE que lo que hace, básicamente, es, internamente, lanzar un SQL sobre cada tabla para despues unirlas y, el resultado, es lo que devuelve al cliente


La franja horaria es GMT +2. Ahora son las 03:55:07.

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