Автор: de1phi | 18.12.2007 в 10:22 | Рубрики: Базы данных

…я обращал ваше внимание на трудности коннекта 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;
Читать полностью…

Я как-то обращал ваше внимание на трудность получения дескриптора ODBC соединения посредством DBE. После тесного общения со службой поддержки Borland, я наконец нашел решение как это сделать. Вот этот код:

unit Getprop;

interface

uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Grids, DBGrids, StdCtrls, DB, DBTables,
DBIProcs, DBITypes, DBIErrs;

type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
DBGrid1: TDBGrid;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.active := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
hTmpDB: hDBIDb;
iLen: word;

begin
Check(DbiGetProp(hDBIObj(Table1.DBhandle), dbNATIVEHNDL, @hTmpDB,
sizeof(hDBIDb), iLen));
Edit1.text := inttostr(longint(htmpdb));
end;

end.

Автор: de1phi | в 10:22 | Рубрики: Базы данных

Представляю вашему вниманию инструкцию по конфигурированию ODBC и источника данных.

Для того, чтобы Borland Database Engine мог пользоваться драйверами ODBC, они должны быть сконфигурированы следующим образом:

Инсталлируйте драйвер и установите его в Панель Управления/ODBC administrator.
Если это файл базового драйвера типа dBase, Paradox, Excel, FoxPro и др., то вы должны указать каталог, содержащий ваши файлы.
Access и Local Btrieve файлы должны указывать на конкретный файл базы данных (Btreive на File.ddf, Access должен указывать на файл с расширением .MDB).
Если это линк (connection) к базе данных, например Oracle, Sybase, Interbase, и др., вы должны указать на этот линк. Обычно транспорт посредством TCPIP, SPX/IPX, NetBEUI и т.п. предусматривается поставщиком программного обеспечения. Каждый драйвер работает с транспортным протоколом по-своему.
Запустите Database Engine Configuration Utility. (BDECFG.EXE)
Выберите New ODBC Driver.
Задайте имя вашему драйверу (к имени автоматически добавится “ODBC_”.)
Выберите ваш ODBC Driver из списка Default ODBC Driver List.
Выберите имя источника данных по умолчанию.
Создайте псевдоним (alias), указывающий на установленный вами драйвер.
Установите ссылку с именем псевдонима на ваш драйвер.
Примечание относительно баз данных Access 2.0: вам необходимо иметь самые последние драйверы от Microsoft. Имеющиеся драйверы позволяют работать только с базами данных Access 1.0, не выше.
Стоимость нового набора драйверов у самой Microsoft составляет $10, что эквивалентно цене носителя и пересылки.

Для работы с Access 2.0 вам необходимо использовать источник данных с именем “Microsoft Access Driver” или “Microsoft Access 2.0 Databases”.

Имейте в виду, что “Access Data” и “Access Files” по умолчанию являются источниками данных только для Access 1.0. Поэтому для получения доступа к MDB-файлам Access 1.0 пользуйтесь “Access Data”.

Btrieve также создает источник данных по умолчанию “Btrieve Data” и “Btrieve Files”. Используйте “Btrieve Data” как ваш источник данных по умолчанию. Драйверы Btrieve позволяют использовать данные btrieve вплоть до версии 5.0. Для работы с Btrive данными более новой версии, необходим новый набор драйверов Microsoft или Intersolve Q+E.

Настройка ODBC в Панели Управления

При инсталляции, Delphi устанавливает в Панель Управления апплет “ODBC” (далее - “настройка ODBC”). “Настройка ODBC” содержит доступные источники данных (драйвера), установленных для использования ODBC. Как вы можете видеть на главной странице “Data Sources”, ODBC содержит внушительный набор форматов, которые могут использоваться в Delphi. Дополнительные форматы поддерживаются установленными драйверами и могут быть добавлены с помощью кнопки “Add…”.

Для добавления нового или удаления существующего драйвера:

В окне “Data Sources” нажмите кнопку “Drivers…”. В появившемся диалоговом окне “Drivers” нажмите кнопку “Add…” и укажите путь к новому драйверу ODBC.
Возвратитесь в окно “Data Sources” и добавьте доступные с новым драйвером источники данных с помощью кнопки “Add…”.
Для настройки конкретного источника данных используйте кнопку “Setup…”. Функция кнопки “Setup…” меняется с каждым форматом данных. Частенько настройки типа рабочей директории для драйвера настраиваются как раз в этом месте.
Разделы электронной справки доступны для каждой страницы и диалогового окна “Настроки ODBC”.
BDE CONFIGURATION UTILITY

После установки драйвера ODBC, запустите BDE Configuration utility для конфигурации BDE для работы с новым драйвером.

На странице драйверов нажмите на кнопку “New ODBC driver”.
Появится диалог с заголовком “Add ODBC driver”. Опция “SQL link driver” позволяет выяснить, с какими типами баз данных можно работать с помощью данного драйвера ODBC.
Затем выбирайте default ODBC driver (драйвер ODBC по-умолчанию). Выпадающий список содержит список типов файлов, поддерживаемых установленными в системе драйверами ODBC.
Выберите для ODBC-драйвера источник данных по-умолчанию (default data source). Имея уже установленный на шаге 3 драйвер ODBC, список этого combobox’а будет содержать имена источников данных, подходящих для использования с выбранным драйвером.
Нажмите Ok.
Возвратитесь на страницу драйверов, выберите File/Save из главного меню и сохраните данную конфигурацию.
Создание псевдонима в DATABASE DESKTOP
Хотя создать псевдоним ODBC можно и из BDE Configuration utility, Database Desktop предоставляет более комфортное решение.

В меню “File” выберите пункт “Aliases..”.
В появившемся диалоге “Alias Manager” нажмите кнопку “New”.
Введите имя вашего нового псевдонима в поле редактирования, помеченной как “Database Alias”.
Используя выпадающий список “Driver Type” (типы драйверов), выберите драйвер, подходящий для данного псевдонима. Таблицы Paradox и dBase считаются STANDARD. Если в BDE Configuration utility драйвер ODBC был правильно сконфигурирован, то его имя появится в списке.
Дополнительные опции опции могут появляться в зависимости от выбранного типа драйвера.
После завершения всех описанных действий сохраните новый псевдоним, выбрав “Keep New”. Затем нажмите “Ok”. Появится подсказка, спрашивающая о необходимости сохранения псевдонима в IDAPI.CFG. Выберите “Ok”.
Теперь псевдоним будет работать и в Database Desktop, и в Delphi.

Автор: de1phi | в 10:22 | Рубрики: Базы данных

uses Registry;

procedure TForm1.GetDataSourceNames(System: Boolean);
var
reg: TRegistry;
begin
ListBox1.Items.Clear;

reg := TRegistry.Create;
try
if System then
reg.RootKey := HKEY_LOCAL_MACHINE
else
reg.RootKey := HKEY_CURRENT_USER;

if reg.OpenKey(’\Software\ODBC\ODBC.INI\ODBC Data Sources’, False) then
begin
reg.GetValueNames(ListBox1.Items);
end;

finally
reg.CloseKey;
FreeAndNil(reg);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
//Системные DSNs
GetDataSourceNames(True);
//Пользовательские DSNs
GetDataSourceNames(False);
end;