![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программное создание DSN [D7, MSSQL]
Леди © (2005-09-02 11:48:00)Подскажите, как программно в источниках данных ODBC создать системный DNS, а также проверить его существование?
Dick Gonsales (2005-09-07 09:17:00) [1]Одно время я этим пользовался. нашел в интернете, кто автор не знаю.
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);
Игорь Шевченко (2005-09-02 16:44:00) [2]
> А в каких модулях или библиотеках находятся эти функции
> и где поподробней о них можно узнать?
odbccp32.dll
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcsqlconfigdatasource.asp
Леди (2005-09-02 12:40:00) [3]А в каких модулях или библиотеках находятся эти функции и где поподробней о них можно узнать?
DiamondShark (2005-09-02 12:04:00) [4]SQLConfigDataSource
SQLDataSources