Вторник, 21.05.2024
Королевство Delphi
Главное меню
Статьи
Наш опрос
Нравится раздел статьи?
Всего ответов: 68
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Базы данных » Разные

Как создать SystemDSN
const
ODBC_ADD_DSN = 1; // Добавляем источник данных
ODBC_CONFIG_DSN = 2; // Конфигурируем (редактируем) источник данных
ODBC_REMOVE_DSN = 3; // Удаляем источник данных
ODBC_ADD_SYS_DSN = 4; // Добавляем системный DSN
ODBC_CONFIG_SYS_DSN = 5; // Конфигурируем системный DSN
ODBC_REMOVE_SYS_DSN = 6; // удаляем системный DSN

type
TSQLConfigDataSource = function( hwndParent: HWND; fRequest: WORD;
lpszDriver: LPCSTR; lpszAttributes: LPCSTR ) : BOOL; stdcall;

procedure Form1.FormCreate(Sender: TObject);
var
pFn: TSQLConfigDataSource;
hLib: LongWord;
strDriver: string;
strHome: string;
strAttr: string;
strFile: string;
fResult: BOOL;
ModName: array[0..MAX_PATH] of Char;
srInfo : TSearchRec;
begin
Windows.GetModuleFileName( HInstance, ModName, SizeOf(ModName) );
strHome := ModName;
while ( strHome[length(strHome)] <> ′′ ) do
Delete( strHome, length(strHome), 1 );
// Тестовая база данных (Axes = Access)
strFile := strHome + ′TestData.MDB′;
// загружаем библиотеку (путь по умолчанию)
hLib := LoadLibrary( ′ODBCCP32′ );
if( hLib <> NULL ) then
begin
@pFn := GetProcAddress( hLib, ′SQLConfigDataSource′ );
if( @pFn <> nil ) then
begin
// начинаем создание DSN
strDriver := ′Microsoft Access Driver (*.mdb)′;
strAttr := Format( ′DSN=TestDSN′ + #0 + ′DBQ=%s′ + #0 +
′Exclusive=1′ + #0 + ′Description=Test Data′ + #0 + #0, [strFile] );
fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
if( fResult = false ) then
ShowMessage( ′Ошибка создания DSN (Datasource) !′ );

// test/create MDB file associated with DSN
if( FindFirst( strFile, 0, srInfo ) <> 0 ) then
begin
strDriver := ′Microsoft Access Driver (*.mdb)′;
strAttr := Format( ′DSN=TestDSN′+#0+ ′DBQ=%s′+#0+ ′Exclusive=1′+#0+
′Description=Test Data′+#0+ ′CREATE_DB="%s"′#0+#0, [strFile,strFile] );
fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
if( fResult = false ) then
ShowMessage( ′Ошибка создания MDB (файла базы данных) !′ );
end;
FindClose( srInfo );
end;
FreeLibrary( hLib );
end
else
ShowMessage( ′Невозможно загрузить ODBCCP32.DLL′ );
end; 

Получить ссылку на материал

Категория: Разные | Добавил: Барон (06.12.2011)
Просмотров: 988 | Теги: SystemDSN | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
Access [1]
ADO [5]
Alias [4]
Oracle [1]
Delphi & SQL [15]
Разные [29]
Псевдоним [12]
СУБД клиент-сервер [3]
Королевство Delphi © 2010-2024
Яндекс цитирования