Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

Программное создание 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
1-1127790985
HelpMy
2005-09-27 07:16
2005.10.16
Service &amp; DLL


1-1127486011
злобная танька
2005-09-23 18:33
2005.10.16
Локальные типизированные константы


2-1127316572
Ксардас
2005-09-21 19:29
2005.10.16
Как Tpoint преобразовать в string?


1-1127427995
sashok
2005-09-23 02:26
2005.10.16
Val(ReadOut.Text, op1, Code);


1-1127326732
френк
2005-09-21 22:18
2005.10.16
GetProcAddress