Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 261

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Помогите разобраться с FreeIBComponents применительно к Firebird *.FDB.

Мне пришлось отказаться от BDE и пользоваться Firebird сервером. Я скачал IBExpert и для начала создал простейшую БД с одной таблицей. Потом установил FIBPlus и руководство к нему. Но моих поверхностных сведений о БД уже недостаточно. Не имея опыта работы с InterBase и компонентами типа TQuery, я не смог даже визуализировать содержимое таблицы в DBGrid. Более того, читая литературу, я так и не понял, как связать компонент DataSource с компонентом, подобным TQuery.
На скриншоте 1 - форма, компоненты
DBGrid1: TDBGrid;
DataSource1: TDataSource;
pFIBDatabase1: TpFIBDatabase;
pFIBDataSet1: TpFIBDataSet;
pFIBQuery1: TpFIBQuery; И больше ничего.
Компонент pFIBDatabase1 "настроен" на базу данных и подсоединен (Connected:=True).
Видно, что поля доступны (скриншоты 2,3).
Далее что делать - не знаю.
Помогите пожалуйста - лучше готовым примером или подсказкой.
Или хотя бы подскажите литературу, понятную для дилетантов.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1. type
  2. TForm1 = class(TForm)
  3. DBGrid1: TDBGrid;
  4. DataSource1: TDataSource;
  5. pFIBDatabase1: TpFIBDatabase;
  6. pFIBDataSet1: TpFIBDataSet;
  7. pFIBQuery1: TpFIBQuery;
  8. private
  9. { Private declarations }
  10. public
  11. { Public declarations }
  12. end;
  13.  
  14. var
  15. Form1: TForm1;
  16.  
  17. implementation
  18.  
  19. {$R *.dfm}
  20.  
  21. end.


alexandergb Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: alexandergb (статус: Посетитель)
Вопрос отправлен: 7 октября 2009, 16:46
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Тов. Женька

Здравствуйте, alexandergb!

Из книг могу посоветовать "Мир Interbase" Ковязина. Там есть главы и по работе с компомпонентами, в т.ч. FibPlus. Там же и ответ на ваш вопрос найдется.

Ответ отправил: Тов. Женька (статус: 3-ий класс)
Время отправки: 7 октября 2009, 17:03
Оценка за ответ: 4

Ответ #2. Отвечает эксперт: ANBsoft

Здравствуйте, alexandergb!
C FibPlus я не работал, но не думаю что что-то принципиально отличается от стандарта.
Опишу порядок действий для работы со стандартными компонентами из закладки Interbase.
1)Добавляем в проект TIBDatabase и TIBTrancaction, связываем их и настраиваем (это у Вас уже сделано)
2)Добавляем TIBQuery, свойство Database выбираем свою TIBDatabase, заполняем свойство SQL (похоже тоже сделано)
3)Добавляем TDataSource, свойство DataSet выбираем TIBQuery.
4)Добавляем TDBGrid, свойство DataSet Выбираем TTDataSet
5)При старте TIBQuery.Active:=True;
В принципе все, можно заполнить поля TIBQuery и столбцы таблицы, если этого не сделать, то при открытии должны высветиться все столбцы из запроса.

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 7 октября 2009, 18:45


Мини-форум вопроса

Всего сообщений: 8; последнее сообщение — 8 октября 2009, 12:49; участников в обсуждении: 3.
Вадим К

Вадим К (статус: Академик), 7 октября 2009, 17:01 [#1]:

а в таблице данные есть?
Галочка "подтверждения прочтения" - вселенское зло.
alexandergb

alexandergb (статус: Посетитель), 7 октября 2009, 17:13 [#2]:

Да. Две записи. Проверил.
Вадим К

Вадим К (статус: Академик), 7 октября 2009, 17:25 [#3]:

Странно то, что в select запросе шесть полей, а в таблице видно только 3.
Галочка "подтверждения прочтения" - вселенское зло.
alexandergb

alexandergb (статус: Посетитель), 7 октября 2009, 17:30 [#4]:

Для Вадим К:
Буду очень признателен, если Вы просто на примере покажете, как пользоваться компонентом pFIBQuery (или другим).
(подобно Table => DataSource => DBGrig : подключил таблицу, настроил DataSource на Table, DBGrig на DataSource, затем активизировал таблицу - и увидел данные. Я не понимаю, как связать DataSource с pFIBQuery )Вадим К:
Вадим К

Вадим К (статус: Академик), 7 октября 2009, 17:36 [#5]:

приду домой, если компоненты установлены - попробую собрать пример.
Галочка "подтверждения прочтения" - вселенское зло.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 7 октября 2009, 22:27 [#6]:

есть вообще опыт работы с SQL запросами? Связь компонентов между собой почти не зависит от платформы. В чем именно Ваша проблема?
alexandergb

alexandergb (статус: Посетитель), 8 октября 2009, 12:40 [#7]:

Уважаемые эксперты! Хотя я и не получил ответа на свои вопросы, (быть может нечетко поставленные), однако ваши советы помогли мне разобраться с моей проблемой.

Итак перефразирую мой вопрос:

что нужно сделать для того, чтобы в компоненте DBGrid увидеть (причем на этапе конструирования) содержимое таблицы Firebird (*.FDB).

Ответ:

Поместить на форму компоненты DBGrid, DataSource и связать их как обычно.
Далее поместить компоненты pFIBDatabase, pFIBDataSet и pFIBTransaction.
ВНИМАНИЕ! Компонент pFIBQuery помещать не нужно. Он не является аналогом Query и не предоставляет набор данных.
Компонент pFIBDatabase настроить на базу данных, кликнув по нему и заполнив Connection Properties как рекомендовано в руководстве на FIBPlus.
Далее настроить компоненты друг на друга, начиная с DataSource. Если этого не сделать и случайно настроить свойство pFIBDataSet.DataSource , то компонент DataSource не увидит набора данных! Что и случилось в моем случае!!!
Если такое случилось - очистите свойство pFIBDataSet.DataSource и вновь попытайтесь настроить DataSource.
(Не забудьте убедиться, что компоненты установлены в Enabled:=True).
Т.е. остальные св-ва компонентов DataBase, DefoultDataBase, Transaction и подобные следует заполнить предлагаемыми значениями (т.к. компоненты "видят" друг друга).
В компонент pFIBDataSet записать запрос вида
SELECT
TIM_ON,
TIM_OFF,
PERIOD,
WEEK,
REMARK,
"AUTO"
FROM
TIM_TABLE
(создается автоматически в раскрывающемся окне SQL Edit после клика по свойству SelectSQL. Далее просто щелкаем в єтом окне по выбранной таблице)

Дальше подключаем компоненты по очереди (pFIBDatabase.Connected:=True , pFIBTransaction.Active:=True ,
pFIBDataSet.Active:=True),
и любуемся содержимым таблицы.
Вадим К

Вадим К (статус: Академик), 8 октября 2009, 12:49 [#8]:

вчера весь вечер промучился, не хотели у меня фибы ставиться. Странно ругались.
Но...
Рекомендую скачать с сайта фибов документик http://www.devrace.com/files/files/FIBPlus696%20Developers%20Guide.pdf - там есть много интересного.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:26
Выполнено за 0.02 сек.