在前段時間專案過程中倒數據過程中要求動態不同資料庫倒資料時遇到的關於資料來源的問題,當然,不能ADOQUERY連接的DBF表(未下補丁版本,後發現也可連接)一定要建ODBC進行連線處理,那麼ODBC一定要動態建立以排除用戶刪除ODBC的可能,下面我就把API函數原型及建SQLSERVER和DBF表的語句寫下來共享(當然SQLSERVER在ADO狀態下不必建立)。
SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;lpszDriverString: String; lpszAttributes: String): Integer;
呼叫狀態下使用:
function SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;lpszDriverString: String; lpszAttributes: String): Integer;stdcall;external 'ODBCCP32.DLL';
建立SQLSERVER的ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,'SQL Server','DSN=Record_ODBC'+ chr(0) +'Server=(local)'+ chr(0) +'Database=master'+ chr(0) +'Description=DragonPC SQLServer ODBC Source'+ chr(0));
{ DSN:你的ODBC資料來源名稱。
Server:你的資料庫伺服器名稱,使用(local)指的是本機電腦安裝的資料庫。註:最新的SQL Server 2000支援一台電腦運行多個SQL Server服務,這時候你需要指定SqlSever的InstanceName。
Address:指定SQL Server伺服器的網路IP位址。
Database:指定預設資料庫名稱。
Language:指定預設語言。
Description:備註資訊。 }
建立DBF表ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, 'Microsoft Visual FoxPRo Driver' + CHR(0), 'dsn=SourceTable' + CHR(0) + 'BackgroundFetch=Yes' + CHR(0) + 'Description=descripcion de la conexion' + CHR (0) + 'Exclusive=No' + CHR(0) +sourcedbstr + CHR(0) +'Sourcetype=DBF');
其他均雷同,只是在建立DBF表調試了好長時間,寫出來希望大家免去浪費時間。
註:以上內容只供初學者遇到類似問題參考。