Beranda > Computer > ADO Data Link Property: Menonaktifkan Page Provider Selection

ADO Data Link Property: Menonaktifkan Page Provider Selection

Arsitektur ADO memang memungkinkan developer (dan user) untuk memilih sendiri database apa yang akan digunakan. Namun seringkali ada saat program hanya mensupport satu database tertentu secara spesifik, misalnya: SQL Server. Keberadaan ADO Datalink property sebenarnya bisa sangat membantu dalam sebuah aplikasi untuk mendiagnostik status konektivitas antara client dengan server, namun ada kalanya aplikasi yang hanya mensupport satu tipikal RDBMS secara spesifik akan merasa perlu untuk menonaktifkan page pilihan provider, dan menspesifikasikannya hanya pada provider yang dirujuk. Sayangnya, bagi programmer Delphi yang menggunakan dbGO (ADOExpress) tidak ada pilihan untuk mendisable-kan page ini. Untuk mendisablekan page tersebut, kita perlu membuat satu fungsi yang sebenarnya adalah standar yang terdapat pada ADOExpress namun dengan sedikit tweak untuk kebutuhan ini. Source code fungsi tersebut adalah sebagai berikut:

uses
  OleDB, ComObj, ActiveX;

function ExPromptDataSource(ParentHandle: THandle;
  InitialString: WideString = 'provider=SQLOLEDB'): WideString;
var
  DataInit: IDataInitialize;
  DBPrompt: IDBPromptInitialize;
  DataSource: IUnknown;
  InitStr: PWideChar;
begin
  Result := InitialString;
  DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize;
  if InitialString <> '' then
    DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER,
      PWideChar(InitialString), IUnknown, DataSource);
  DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize;
  if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle,
    DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTION or
    DBPROMPTOPTIONS_PROPERTYSHEET,
      0, nil, nil, IUnknown, DataSource)) then
  begin
    InitStr := nil;
    DataInit.GetInitializationString(DataSource, True, InitStr);
    Result := InitStr;
  end;
end;
Iklan
Kategori:Computer
  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: