|
Вопрос # 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 дней с момента отправки вопроса)
Приложение: Переключить в обычный режим- type
- TForm1 = class(TForm)
- DBGrid1: TDBGrid;
- DataSource1: TDataSource;
- pFIBDatabase1: TpFIBDatabase;
- pFIBDataSet1: TpFIBDataSet;
- pFIBQuery1: TpFIBQuery;
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.dfm}
-
- end.
 |
Вопрос задал: 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 (статус: Посетитель), 7 октября 2009, 17:13 [#2]:
Да. Две записи. Проверил.
|
|
Вадим К (статус: Академик), 7 октября 2009, 17:25 [#3]:
Странно то, что в select запросе шесть полей, а в таблице видно только 3.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
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 (статус: Посетитель), 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),
и любуемся содержимым таблицы.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|