Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 841

•  TDictionary Custom Sort  6 830

•  Fast Watermark Sources  6 609

•  3D Designer  9 575

•  Sik Screen Capture  6 951

•  Patch Maker  7 395

•  Айболит (remote control)  7 345

•  ListBox Drag & Drop  6 203

•  Доска для игры Реверси  98 212

•  Графические эффекты  7 519

•  Рисование по маске  6 803

•  Перетаскивание изображений  5 656

•  Canvas Drawing  6 034

•  Рисование Луны  5 826

•  Поворот изображения  5 276

•  Рисование стержней  3 868

•  Paint on Shape  3 023

•  Генератор кроссвордов  3 981

•  Головоломка Paletto  3 155

•  Теорема Монжа об окружностях  3 996

•  Пазл Numbrix  2 636

•  Заборы и коммивояжеры  3 450

•  Игра HIP  2 364

•  Игра Go (Го)  2 283

•  Симулятор лифта  2 678

•  Программа укладки плитки  2 242

•  Генератор лабиринта  2 798

•  Проверка числового ввода  2 401

•  HEX View  2 744

•  Физический маятник  2 430

 
скрыть

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



Автор: Vit

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, иначе он не будет доступен





Похожие по теме исходники

Новый Сапер