我正在考慮將ODBC數據庫連接添加到應用程序。Delphi ODBC連接對話框組件?
用戶將在運行時配置並選擇他們的數據庫odbc連接。
是否有任何組件會給我所需的一系列對話框?
允許用戶選擇數據源類型,選擇驅動器,瀏覽已經 定義ODBC連接等
乾杯 山姆
我正在考慮將ODBC數據庫連接添加到應用程序。Delphi ODBC連接對話框組件?
用戶將在運行時配置並選擇他們的數據庫odbc連接。
是否有任何組件會給我所需的一系列對話框?
允許用戶選擇數據源類型,選擇驅動器,瀏覽已經 定義ODBC連接等
乾杯 山姆
你可以試試這個,如果你正在使用ADO組件。
選項1
Uses
OleDB,
ComObj,
ActiveX;
function Edit_ADO_ODBC_ConnectionString(ParentHandle: THandle; InitialString: WideString;out NewString: string): Boolean;
var
DataInit : IDataInitialize;
DBPrompt : IDBPromptInitialize;
DataSource: IUnknown;
InitStr : PWideChar;
begin
Result := False;
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;
{
DBPROMPTOPTIONS_WIZARDSHEET = $1;
DBPROMPTOPTIONS_PROPERTYSHEET = $2;
DBPROMPTOPTIONS_BROWSEONLY = $8;
DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTION = $10;
}
if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle,DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then
begin
InitStr := nil;
DataInit.GetInitializationString(DataSource, True, InitStr);
NewString := InitStr;
Result := True;
end;
end;
Result:=Edit_ADO_ODBC_ConnectionString(0,OldConnectionString,NewString);
選項2
Uses
ADODB;
PromptDataSource(Self.Handle, InitialString);
選項3
Uses
ADODB,
AdoConEd;
procedure TMainForm.Button2Click(Sender: TObject);
Var
ADOConnection1 : TADOConnection;
begin
ADOConnection1:=TADOConnection.Create(Self);
EditConnectionString(ADOConnection1);
end;
必須選擇「Microsoft OLE DB Provider for ODBC Drivers」
再見。
來自ADODB單元的PromptDataSource函數。兩個參數是 要求:
連接字符串。如果你不想要的默認連接字符串 只是傳遞一個空字符串爲:
var sConn : WideString; begin sConn := PromptDataSource(Form1.Handle, ''); end;
我會嘗試建議的解決方案和回來儘快解決。 – SamH 2009-09-25 15:30:10