Форум: "Базы";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизПрограммное создание DSN Найти похожие ветки
← →
Леди (2005-09-02 11:48) [0]Подскажите, как программно в источниках данных ODBC создать системный DNS, а также проверить его существование?
← →
DiamondShark © (2005-09-02 12:04) [1]SQLConfigDataSource
SQLDataSources
← →
Леди (2005-09-02 12:40) [2]А в каких модулях или библиотеках находятся эти функции и где поподробней о них можно узнать?
← →
Игорь Шевченко © (2005-09-02 16:44) [3]
> А в каких модулях или библиотеках находятся эти функции
> и где поподробней о них можно узнать?
odbccp32.dll
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcsqlconfigdatasource.asp
← →
Dick Gonsales (2005-09-07 09:17) [4]Одно время я этим пользовался. нашел в интернете, кто автор не знаю.
unit SystemDSN;
interface
uses
Windows, Sysutils, Classes;
const
ODBC_ADD_DSN = 1;
ODBC_CONFIG_DSN = 2;
ODBC_REMOVE_DSN = 3;
ODBC_ADD_SYS_DSN = 4;
ODBC_CONFIG_SYS_DSN = 5;
ODBC_REMOVE_SYS_DSN = 6;
type
TSQLConfigDataSource = function( hwndParent: HWND;
fRequest: WORD;
lpszDriver: LPCSTR;
lpszAttributes: LPCSTR ) : BOOL; stdcall;
function CreateDSN( DriverName, Path, DSNName, Description : string; Mode : integer ) : boolean;
implementation
function CreateDSN( DriverName, Path, DSNName, Description : string; Mode : integer ) : boolean;
var
pFn: TSQLConfigDataSource;
hLib: LongWord;
strAttr: string;
begin
Result := false;
if ( DriverName = "" ) or ( Path = "" ) then
exit;
hLib := LoadLibrary( "ODBCCP32" );
if hLib = 0 then
begin
MessageBox(HWND(nil), "Not found ODBCCP32.DLL", "Error!", 4112);
exit;
end;
@pFn := GetProcAddress( hLib, "SQLConfigDataSource" );
if( @pFn <> nil ) then
begin
strAttr := Format( "DSN=" + DSNName + #0 +
"DBQ=%s" + #0 +
"Exclusive=0" + #0 +
"Description=" + Description + #0 + #0,
[ Path ] );
Result := pFn( 0, Mode, @DriverName[1], @strAttr[1] );
end;
FreeLibrary( hLib );
end;
end.
// Пример вызова
if not SystemDSN.CreateDSN("Microsoft Access driver (*.mdb)",NameDB,"Report","",1)
then MessageDlg(("Ошибка создания DSN - Report."),mtError, [mbOK], 0);
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c