請教如何用ODBC做動態連結 |
尚未結案
|
Larry
一般會員 發表:1 回覆:0 積分:0 註冊:2002-10-04 發送簡訊給我 |
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
Hi,Larry,您好!
我理解能力較差,不知道您是否想要利用code來動態的建立ODBC的資料源,如果是,請您看看下面的:
...... uses Registry; ...... procedure TForm1.Button1Click(Sender: TObject); var ls_dsn,ls_database,ls_desc,ls_login_id,ls_server_ip:string; lbl_user_dsn:boolean; // true-->user_dsn,false-->system dsn registerTemp : TRegistry; begin //判斷用戶輸入的資訊是否正確 ls_dsn:=trim(Edit1.text); //取得資料源名 ls_database:=trim(Edit2.text); //取得資料庫名 ls_desc:=trim(Edit3.text); //取得描述名 ls_login_id:=trim(Edit4.text); //取得用戶名 //取得資料庫所在的IP地址 ls_server_ip:=Edit5.text; //判斷資料源名是否填寫 if ls_dsn='' then begin showmessage('請輸入資料源名'); Edit1.SetFocus ; exit; end; registerTemp := TRegistry.Create; //建立一個Registry實例 with registerTemp do begin if RadioButton1.Checked then RootKey:=HKEY_CURRENT_USER //設置根鍵值爲HKEY_CURRENT_USER else RootKey:=HKEY_LOCAL_MACHINE; //設置根鍵值爲HKEY_LOCAL_MACHINE //找到Software\ODBC\ODBC.INI\ODBC Data Sources if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) then begin //註冊一個DSN名稱 WriteString( ls_dsn, 'SQL Server' ); end else begin//創建鍵值失敗 Showmessage('增加ODBC資料源失敗' #13 formatdatetime('yyyy-mm-dd hh:mm:ss',now)); exit; end; CloseKey; //找到或創建Software\ODBC\ODBC.INI\MyAccess,寫入DSN配置資訊 if OpenKey('Software\ODBC\ODBC.INI\' ls_dsn,True) then begin WriteString( 'Database',ls_database);//資料庫 WriteString( 'Description',ls_desc);//資料源描述 WriteString( 'Driver', 'E:\Windows\SYSTEM\sqlsrv32.dll' );//驅動程式DLL文件 Writestring( 'LastUser',ls_login_id);// WriteString( 'Server', ls_server_ip);//用戶名稱 end else//創建鍵值失敗 begin Showmessage('增加ODBC資料源失敗' #13 #10 formatdatetime('yyyy-mm-dd hh:mm:ss',now)); exit; end; CloseKey; showmessage('已成功創建新的ODBC資料源'); Showmessage('已成功創建新的ODBC資料源' #13 #10 formatdatetime('yyyy-mm-dd hh:mm:ss',now)); Free; end; end;我也是一知半解,如有謬誤,請多多指教! < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |