Здравствуйте, lamed!
Проект в прикреплённом файле. Lazarus 0.9.31.
Ключевые особенности:
- В компоненте TIBConnection (равно, как и в компонентах соединения с другими БД) обязательно нужно указывать свойство CharSet='utf8', т.к. в Lazarus строки кодируются именнов в UTF-8, а в Вашей БД кодировка строк ср1251. Если же в базе кодировка тоже UTF-8, то, в принципе, этот параметр можно не заполнять, но я Вам рекоммендую всё же его указывать. Этот параметр говорт серверу БД, в какой кодировке нужно высылать клиенту запрошенные им наборы данных.
- В Lazarus нет стандартной формы ввода логина и пароля для БД, как это было в Delphi. Однако, в событии TIBConnection.OnLogin, Вы можете вызвать свою форму для ввода пароля, значения полей которой, после зкрытия формы логина, нужно присвоить параметрам этого события username и password. Заносить логин и пароль при разработке в компонент TIBConnection (и любой другой компонент связи с БД) не рекоммендуется, т.к. они хранятся в открытом виде (как и в Delphi) и легко могут быть прочитаны коварными злодеями.
- При подтверждении транзакции (TSQLTransaction.Commit) одновременно и закрывается связанный с ним запрос (TSQLQuery). Это логично, т.к. всё равно придётся перезапрашивать данные после изменения.
- У компонента TSQLQuery есть три свойства, которых не было у аналогичного компонента в Delphi:
-- DeleteSQL, InsertSQL, UpdateSQL. Их назначение - содержать соответствующие SQL-запросы удаления\вставки\изменения данных, проводимые прямо в том наборе данных, который Вам вернул запрос к БД, текст которого содержится в свойстве SQL. Без них никакие изменения в наборе данных на сервер не попадут. В данной программе используются другие механизмы изменения данных, поэтому эти свойства оставлены пустыми. В Delphi эти функции выполнялись отдельным компонентом.
- Не забывайте положить в системный каталог или каталог с программой клиентскую библиотеку связи с сервером БД - fbclient.dll.
Пишите вопросы.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)