Прошу помощи с БД (связанные таблицы)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
java73
постоялец
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10

Прошу помощи с БД (связанные таблицы)

Сообщение java73 »

Добрый день. Прошу помощи в след.ситуации.
Программирую в качестве хобби, давно не вспоминал, может просто туплю.
Вся база данных в таблицах dbf.
Есть таблица юрлица, в ней автоинкрементный идентификатор.
Есть таблица ресчетные счета, в ней поле "идентификатор юрлица", куда должен подставляться идентификатор из табл.юрилица для связи. То есть на одно юрлицо может быть несколько счетов.
Для редактирования и просмотра юрлиц использую форму, хотелось бы, чтобы привязанные расчетные счета отображались в компоненте dbgrid, однако в нем не предусмотрена фильтрация.
Для редактирования и просмотра счетов хочу использовать lookupcombobox
Как мне лучше настроить свойства и как прописать код, чтобы все было так, как я задумал?
Очень прошу помощи, как я пробовал пока не получается. Пробовал использовать свойство filter у TDbf, однако не получается...
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

java73 писал(а):хотелось бы, чтобы привязанные расчетные счета отображались в компоненте dbgrid, однако в нем не предусмотрена фильтрация

Данные отображать запросом вида "Select ... from ... where PK_ID = ID_юрлица"

ID_юрлица подставляется из соответсвующего поля lookupcombobox
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

zoltanleo
В TDBF нет никакого "SELECT ... FROM".
sign
энтузиаст
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Сообщение sign »

Раз это хобби, то переходите на MySQL.
Тогда вам откроется куча плюшек.
Для удобства работы с базой данных, можете скачать "dbForge Studio for MySQ".
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Лучше на SQLite - там нужен всего один дополнительный файл-библиотека и никаких установок. :)
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Vadim писал(а):Лучше на SQLite - там нужен всего один дополнительный файл-библиотека и никаких установок

тогда уж на Firebird embedded - это полноценная БД, в крайнем случае Access

Vadim писал(а):В TDBF нет никакого "SELECT ... FROM".

наверняка пользуетесь TTable? :wink: Откройте для себя SQL-запросы
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

zoltanleo писал(а):наверняка пользуетесь TTable?

Вы, вообще то, поняли, о чём я сказал?
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Vadim писал(а):Вы, вообще то, поняли, о чём я сказал?

Я-то понял.

Хорошо, скажу по-другому. Попробуйте для себя какой-нибудь компонент, который использует SQL-запросы для выкачивания данных с БД на клиента. Я не работал с компонентами этой вкладки, но мне показалось, что SdfDataSet должен подойти для этой роли (свойство Schema).

В порядке повышения общей образованности: :D
- в дельфях со стародавних времен для работы с dbf-файлами использовались два типа компонент -

TTable

Изображение

который настраивался в три клика мышкой, зато тупо выкачивал все данные на клиента (что было некритично во времена файл-серверных БД) и обладал ограниченными возможностями по фильтрации отображаемых данных

TQuery

Изображение

который отображал только то, что хотел от него программист, но требовал изучения SQL-конструкций

Как-то так ...
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

zoltanleo
Тогда вообще непонятен Ваш ход мыслей. Разве это я работаю с TDBF? Вы мне то по какой причине этого излагаете? Как раз для Вашей общей образованности я и написал, что в компоненте TDBF нет возможности SQL-запросов. Вы, видимо, об этом не знали, раз дали такой "умный" совет (см. Ваш ответ от 21,1,2013). В Lazarus с БД DBF работает компонент TDBF.
Не надо мне больше Ваши сентенции писать. Я с БД работаю с 1997 года и мне общеобразовательные лекции давно уже не интересны. Постарайтесь, наконец, это понять. ;)
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Vadim писал(а): Я с БД работаю с 1997 года


ОК. Понял. Продолжайте закручивать гвоздь отверткой. Приношу извинения за свои советы не к месту.

зы. к сведению, коль вы решили начать меряться пиписьками, я написал своего первого клиента (и тоже в качестве хобби) еще в 95 году на консольной FoxPro 2.6 :D
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение STAKANOV »

java73 писал(а):Очень прошу помощи, как я пробовал пока не получается. Пробовал использовать свойство filter у TDbf, однако не получается..

хорошо бы глянуть значение свойства и кусок кода где фильтр включается
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

zoltanleo писал(а):ОК. Понял. Продолжайте закручивать гвоздь отверткой. Приношу извинения за свои советы не к месту

To Vadim
Я спутал вас с TC. Тогда мои сведения, действительно, не к месту, вернее,адресованы не вам. Приношу свои извинения. :oops:
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

zoltanleo
Приянто. ;)
Кстати, я тоже с консольной FoxPro начинал, точнее - FoxBase ещё - у нас на работе ею пользовались, а потом я с барахолки FoxPro принёс. :)
Ответить