Прошу помощи с БД (связанные таблицы)
Модератор: Модераторы
Прошу помощи с БД (связанные таблицы)
Добрый день. Прошу помощи в след.ситуации.
Программирую в качестве хобби, давно не вспоминал, может просто туплю.
Вся база данных в таблицах dbf.
Есть таблица юрлица, в ней автоинкрементный идентификатор.
Есть таблица ресчетные счета, в ней поле "идентификатор юрлица", куда должен подставляться идентификатор из табл.юрилица для связи. То есть на одно юрлицо может быть несколько счетов.
Для редактирования и просмотра юрлиц использую форму, хотелось бы, чтобы привязанные расчетные счета отображались в компоненте dbgrid, однако в нем не предусмотрена фильтрация.
Для редактирования и просмотра счетов хочу использовать lookupcombobox
Как мне лучше настроить свойства и как прописать код, чтобы все было так, как я задумал?
Очень прошу помощи, как я пробовал пока не получается. Пробовал использовать свойство filter у TDbf, однако не получается...
Программирую в качестве хобби, давно не вспоминал, может просто туплю.
Вся база данных в таблицах dbf.
Есть таблица юрлица, в ней автоинкрементный идентификатор.
Есть таблица ресчетные счета, в ней поле "идентификатор юрлица", куда должен подставляться идентификатор из табл.юрилица для связи. То есть на одно юрлицо может быть несколько счетов.
Для редактирования и просмотра юрлиц использую форму, хотелось бы, чтобы привязанные расчетные счета отображались в компоненте dbgrid, однако в нем не предусмотрена фильтрация.
Для редактирования и просмотра счетов хочу использовать lookupcombobox
Как мне лучше настроить свойства и как прописать код, чтобы все было так, как я задумал?
Очень прошу помощи, как я пробовал пока не получается. Пробовал использовать свойство filter у TDbf, однако не получается...
java73 писал(а):хотелось бы, чтобы привязанные расчетные счета отображались в компоненте dbgrid, однако в нем не предусмотрена фильтрация
Данные отображать запросом вида "Select ... from ... where PK_ID = ID_юрлица"
ID_юрлица подставляется из соответсвующего поля lookupcombobox
zoltanleo
В TDBF нет никакого "SELECT ... FROM".
В TDBF нет никакого "SELECT ... FROM".
Раз это хобби, то переходите на MySQL.
Тогда вам откроется куча плюшек.
Для удобства работы с базой данных, можете скачать "dbForge Studio for MySQ".
Тогда вам откроется куча плюшек.
Для удобства работы с базой данных, можете скачать "dbForge Studio for MySQ".
Лучше на SQLite - там нужен всего один дополнительный файл-библиотека и никаких установок. 
Vadim писал(а):Лучше на SQLite - там нужен всего один дополнительный файл-библиотека и никаких установок
тогда уж на Firebird embedded - это полноценная БД, в крайнем случае Access
Vadim писал(а):В TDBF нет никакого "SELECT ... FROM".
наверняка пользуетесь TTable?
zoltanleo писал(а):наверняка пользуетесь TTable?
Вы, вообще то, поняли, о чём я сказал?
Vadim писал(а):Вы, вообще то, поняли, о чём я сказал?
Я-то понял.
Хорошо, скажу по-другому. Попробуйте для себя какой-нибудь компонент, который использует SQL-запросы для выкачивания данных с БД на клиента. Я не работал с компонентами этой вкладки, но мне показалось, что SdfDataSet должен подойти для этой роли (свойство Schema).
В порядке повышения общей образованности:
- в дельфях со стародавних времен для работы с dbf-файлами использовались два типа компонент -
TTable

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

который отображал только то, что хотел от него программист, но требовал изучения SQL-конструкций
Как-то так ...
zoltanleo
Тогда вообще непонятен Ваш ход мыслей. Разве это я работаю с TDBF? Вы мне то по какой причине этого излагаете? Как раз для Вашей общей образованности я и написал, что в компоненте TDBF нет возможности SQL-запросов. Вы, видимо, об этом не знали, раз дали такой "умный" совет (см. Ваш ответ от 21,1,2013). В Lazarus с БД DBF работает компонент TDBF.
Не надо мне больше Ваши сентенции писать. Я с БД работаю с 1997 года и мне общеобразовательные лекции давно уже не интересны. Постарайтесь, наконец, это понять.
Тогда вообще непонятен Ваш ход мыслей. Разве это я работаю с TDBF? Вы мне то по какой причине этого излагаете? Как раз для Вашей общей образованности я и написал, что в компоненте TDBF нет возможности SQL-запросов. Вы, видимо, об этом не знали, раз дали такой "умный" совет (см. Ваш ответ от 21,1,2013). В Lazarus с БД DBF работает компонент TDBF.
Не надо мне больше Ваши сентенции писать. Я с БД работаю с 1997 года и мне общеобразовательные лекции давно уже не интересны. Постарайтесь, наконец, это понять.
Vadim писал(а): Я с БД работаю с 1997 года
ОК. Понял. Продолжайте закручивать гвоздь отверткой. Приношу извинения за свои советы не к месту.
зы. к сведению, коль вы решили начать меряться пиписьками, я написал своего первого клиента (и тоже в качестве хобби) еще в 95 году на консольной FoxPro 2.6
java73 писал(а):Очень прошу помощи, как я пробовал пока не получается. Пробовал использовать свойство filter у TDbf, однако не получается..
хорошо бы глянуть значение свойства и кусок кода где фильтр включается
zoltanleo писал(а):ОК. Понял. Продолжайте закручивать гвоздь отверткой. Приношу извинения за свои советы не к месту
To Vadim
Я спутал вас с TC. Тогда мои сведения, действительно, не к месту, вернее,адресованы не вам. Приношу свои извинения.
zoltanleo
Приянто.
Кстати, я тоже с консольной FoxPro начинал, точнее - FoxBase ещё - у нас на работе ею пользовались, а потом я с барахолки FoxPro принёс.
Приянто.
Кстати, я тоже с консольной FoxPro начинал, точнее - FoxBase ещё - у нас на работе ею пользовались, а потом я с барахолки FoxPro принёс.
