Недавно добавленные исходники

•  TDictionary Custom Sort  3 227

•  Fast Watermark Sources  2 992

•  3D Designer  4 751

•  Sik Screen Capture  3 259

•  Patch Maker  3 469

•  Айболит (remote control)  3 529

•  ListBox Drag & Drop  2 904

•  Доска для игры Реверси  80 794

•  Графические эффекты  3 843

•  Рисование по маске  3 172

•  Перетаскивание изображений  2 544

•  Canvas Drawing  2 674

•  Рисование Луны  2 501

•  Поворот изображения  2 094

•  Рисование стержней  2 121

•  Paint on Shape  1 525

•  Генератор кроссвордов  2 183

•  Головоломка Paletto  1 731

•  Теорема Монжа об окружностях  2 159

•  Пазл Numbrix  1 649

•  Заборы и коммивояжеры  2 017

•  Игра HIP  1 262

•  Игра Go (Го)  1 201

•  Симулятор лифта  1 425

•  Программа укладки плитки  1 178

•  Генератор лабиринта  1 512

•  Проверка числового ввода  1 297

•  HEX View  1 466

•  Физический маятник  1 322

•  Задача коммивояжера  1 357

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

ODBC соединения



...я обращал ваше внимание на трудности коннекта Delphi-приложений с Watcom. За исключением досадной проблемы с чуствительностью регистров у ODBC драйверов (которая пропадает после установки соответствующих заплаток), мое приложение действительно лучше соединяется с базой данных Watcom, чем LIBS. Вот функция, которую я использую для подключения к серверу:


function TLogonForm.LogonToServer: Boolean;
begin
  LogonToServer := FALSE;
  MyDatabase.AliasName := DatabaseEdit.Text;
  MyDatabase.Params.Values['USER NAME'] := UserIDEdit.Text;
  MyDatabase.Params.Values['PASSWORD'] := PasswordEdit.Text;
  MyDatabase.Params.Values['SERVER NAME'] := ServerName;
  try
    MyDatabase.Connected := TRUE;
    LogonToServer := TRUE;
  except
    on E: EDatabaseError do
      MessageDlg('Программа не в состоянии подключиться к
        серверу баз данных по следующей причине:
          ' + #10 + #10 + E.Message, mtError, [mbOK], 0);
  end;
end;

Эта функция находится в модуле с формой диалога подключения, на которой расположены три поля редактирования: идентификатор пользователя, пароль и имя базы данных. При щелчке пользователем на кнопке OK, значение из поля с именем базы данных используется для поиска в файле ODBC.INI:


ServerName := ODBCIni.ReadString(DatabaseEdit.Text, 'Database', '');

Этой строчкой мы получаем фактическое имя файла базы данных, к которому нам необходимо получить доступ ('SERVER NAME' - параметр соединения).

Во время разработки я выставил в своем компоненте TDatabase следующие параметры:

 Connected: FALSE
 DatabaseName: DCAC {это псевдоним, используемый приложением}
 KeepConnection: TRUE
 LoginPrompt: FALSE
 Name: MyDatabase
 TransIsolation: tiReadCommitted
AliasName, DriverName и Params в режиме проектирования остаются пусты, DriverName не используется совсем, т.к. во время выполнения приложения используется AliasName (они являются взаимоисключающими, вы можете установить что-то одно, но не оба сразу).

Вот секции Interbase и Watcom моего файла ODBC.INI:

 [DCAC_IB]
 Driver=C:\WIN\SYSTEM\BLINT04.DLL
 Description=DC Aquatics (Interbase)
 Database=D:\DCAC_IB\DCAC.GDB

 [DCAC_WSQL]
 Driver=D:\WSQL\wsqlodbc.dll
 Description=DC Aquatics (Watcom)
 Database=D:\DCAC_WAT\DCAC.DB
 Start=D:\wsql\db32w %d
Если мне необходимо подключиться к базе данных Watcom, все, что мне нужно сделать - изменить содержимое поля редактирования имени базы данных в диалоге подключения на 'DCAC_WSQL'. Если мне нужно использовать базу данных Interbase, я набираю 'DCAC_IB'. Работает замечательно.

Надеюсь это поможет... успехов...








Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте