Как создать новый DSN из программы

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Автор: Vit

WEB-сайт: http://forum.vingrad.ru

type

TSQLConfigDataSource =

function(hwndParent: Integer;

fRequest: Integer;

lpszDriverString: string;

lpszAttributes: string): Smallint; stdcall;

function SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;

lpszDriverString: string; lpszAttributes: string): Integer; stdcall;

var

func: TSQLConfigDataSource;

OdbccpHMODULE: HMODULE;

begin

OdbccpHMODULE := LoadLibrary(‘c:\WINDOWS\SYSTEM\odbccp32.dll’);

if OdbccpHMODULE = 0 then

raise Exception.Create(SysErrorMessage(GetLastError));

func := GetProcAddress(OdbccpHMODULE, PChar(‘SQLConfigDataSource’));

if @func = nil then

raise Exception.Create(‘Error Getting adress for SQLConfigDataSource’

SysErrorMessage(GetLastError));

Result := func(hwndParent, fRequest, lpszDriverString, lpszAttributes);

FreeLibrary(OdbccpHMODULE);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if SQLConfigDataSource(0, 1, ‘Microsoft Excel Driver (*.xls)’,

Format(‘DSN=%s;DBQ=%s;DriverID=790’, [‘MyDSNName’,

‘c:\temp\temp.xls’])) 1 then

ShowMessage(‘Cannot create ODBC alias’);

end;

PS: Ecли вы собираетесь работать с этим DSN через BDE, то надо закрыть и открыть Session, иначе он не будет доступен

{/codecitation}

Добавить комментарий