Правильная ссылка на эту страницу
http://az-design.ru/Projects/AzBook/AZMicro/AZMicro31.shtml

Клиентская программа для AZMicro

       Для написания клиентской программы, а точнее рабочего места бухгалтера, будем использовать Delphi2006 в штатной поставке, без каких-либо сторонних библиотек.
       Так как предполагается, что форм потребуется немного, то для простоты можно использовать SDI-приложение, состоящем из одной формы, на которой лежит компонент PageControl с несколькими страницами.
       Страницы будут называться в соответствии с вышеописанными таблицами — План счетов, Журнал операций, Оборотная ведомость, Журнал по счету.
       Большая часть настроек будет осуществляться при открытии формы, поэтому полезно сразу создать две процедуры, связанные с соответствующими событиями — CreateForm и CloseForm. Для этого достаточно выделить компонент Form1, перейти в ObjectsInspector на вкладку Events и сделать двойной клик на событиях onCreateForm и onCloseForm. Delphi автоматически создаст соответствующие (пока пустые) процедуры.

 

Подключение к базе данных


       Для того, чтобы приложение подключалось к нашей БД нужно немного:
       — Из вкладки "Interbase" положите на форму компонент IBDatabase1
       — установите в нем свойство LoginPrompt в False.
       — установите в нем свойство SQLDialect равным 3.
       После чего в процедуре CreateForm можно написать операторы для подключения к БД.

procedure TForm1.FormCreate(Sender: TObject);
Var
   db : String;
   ps : Integer;
begin
   IBDatabase1.Connected := False;  // отключиться от БД
   db := ExtractFilePath(Application.ExeName);
   db := ReverseString(db);  Delete(db,1,1);
   ps := Pos('\',db);  Delete(db,1,ps);
   db := ReverseString(db)+'\AZMicro.fb';
   IBDatabase1.DatabaseName := db;

       Первым действием должно быть, как ни странно, отключение от БД. Дело в том, что компоненты IBX построены таким образом, что если Вы пытаетесь изменить какие-либо параметры запроса, то Delphi пытается подключиться к БД и прописать эти параметры в свойства компонентов. Если конечное приложение не найдет БД, то IBDatabase выдаст ошибку и войдет в бесконечный цикл. Поэтому лучше сразу отключиться, а потом настроить параметры правильно.
       Для экспериментов будем считать, что у БД локальная и находится в каталоге на один уровень выше. Поэтому достачтоно легко вычислить путь к БД:
       — получаем путь к приложению;
       — переворачиваем путь "задом наперед" и удаляем, получившийся первым символ "\";
       — находим следущий символ "\" и удаляем текст до него;
       — переворачиваем обратно и добавляем имя базы данных.
       Получившийся результат присваиваем свойству DatabaseName компонента IBDatabase1.

   IBDatabase1.Params.Clear;
   IBDatabase1.Params.Add('user_name=SYSDBA');
   IBDatabase1.Params.Add('password=masterkey');
   IBDatabase1.Params.Add('lc_ctype=WIN1251');

       После чего нужно указать параметры подключения. Очистив список параметров компонента IBDatabase1 добавляем три параметра — user_name, password, lc_ctype. Значение этих параметров можно изменить в соответствии вашими настройками.

   IBDatabase1.Connected := True;

       И, наконец, можно подключиться к БД. Все бы было хорошо, но пока ничего не видно, кроме страниц на PageControl. Это и понятно — никто не создавал элементов для отображения содержимого таблиц в БД. Начнем?

Архангельский Андрей




<<< Пред. Оглавление
Начало раздела
След. >>>

Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:56 MSK


Постоянный адрес статьи:
http://az-design.ru/Projects/AzBook/AZMicro/AZMicro31.shtml