Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Соединение баз как VFP


Автор: Dusimov 24.10.2002, 17:26
Я раньше работал в Visual FoxPro. Сейчас течением обстоятельства мне нужен создат прогу в среде Delphi. У меня возникла проблема соединением таблиц типа .dbf , индексацию "дата+номер" вроде сделал но немогу соединит с другой таблицой той же параметрами (VFP проще было ).
И еще в Gride немогу отображат словарную таблицу для основной таблици, т.к
в главной таблице есть код страны, и.д. а другой код и название страны. Хочу чтобы в Gride отображался название страны

Спасибо заранее!

Автор: Medved 25.10.2002, 03:23
Есть два варианта (вообще больше, но я опишу два)
1) Я его не очень люблю использовать:
Использовать свойства компонента TTable - MasterFields и MasterSource, детально все описывать не буду, там разобраться не сложно....

2) Второй вариант я считаю более корректным, и к тому же если используешь клиент-серверную базу данных (промышленную, сетевую - кому как нравиться) например Oracle, Interbase, Informix, то лучше использовать компоненты Query..... (почему это уже другой вопрос) тогда алгоритм следующий:
 надо обрабатывать событие OnDataChange - TDataSource который привязан к главной таблице. Это событие наступает при навигации по набору данных основной таблицы, а обработчик должен выполнять следующие задачи:
  он должен формировать динамический запрос к базе для получения набора данных из словарной таблице, где условием будет является конкретное значение, по которому связывается основная и подчиненная табица....

Код приводить не буду, но если кто непоймет, пишите в этот форум.... приведу пример на основе таблиц из DBDEMOS

Автор: Cashey 16.11.2002, 08:29
В DatabaseDesktop в Table properites есть пунк Dependent Tables в нем связываются таблицы. В дальнейшем это можно использовать уже непосредственно в TTable. С grid'ом сложнее, в Delphi есть такое понятие как "отоброжаемые поля"  (не помню как по eng., LookupField кажется), т.е. курсор в одной таблице а отоброжается поле из другой но в гриде такой ф-ции нет, но можно попробовать прописать в ручную. А вообще конечно работать с базами в фоксе удобнее и проще. Нет идеала в этом мире   :angry:

Автор: Medved 16.11.2002, 14:42
Цитата

В DatabaseDesktop в Table properites есть пунк Dependent Tables в нем связываются таблицы. В дальнейшем это можно использовать уже непосредственно в TTable.


В DatabaseDesktop ты так можешь связывать только таблицы Paradox, но это не ответ на вопрос который задавали!

Цитата

С grid'ом сложнее, в Delphi есть такое понятие как "отоброжаемые поля"  (не помню как по eng., LookupField кажется), т.е. курсор в одной таблице а отоброжается поле из другой но в гриде такой ф-ции нет, но можно попробовать прописать в ручную.


Почитай и попробуй зделать мой ответ (см. выше) и у тебя получиться......

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)