MFC中自動配置ODBC資料來源

2021-06-14 01:35:30 字數 2248 閱讀 1914

在mfc中自動配置odbc資料來源

但是多次都沒有成功。

1.一般來說,實現資料庫到odbc驅動程式管理器的註冊有以下兩種方法:一是程式設計時手工配置odbc資料來源,發布時使用installshield等安裝製作軟體自動配置odbc資料來源;二是考慮用程式替使用者完成這些配置工作,實現的方法有幾種,一種辦法是用程式修改windows登錄檔,程式設計師可以用windows api函式增改hkey_local_machine\software\odbc\odbc.ini中的鍵值,這種方法比較煩瑣,另一種是在程式中使用odbc api的方法,程式設計師可以在任何時候都可以用visual c++編寫的程式呼叫這些api函式來設定odbc資料來源。

建立odbc資料來源可以呼叫windows系統子目錄下的動態鏈結庫odbccp32.dll中的函式sqlconfigdatasource(),該函式可以動態地增加、修改和刪除資料來源。

sqlconfigdatasource()的原型如下:

bool sqlconfigdatasource(hwnd hwndparent, uint frequest, lpcstr ipszdriver, lpcstr ipszattributes);

其中四個引數的用法如下:

●引數hwndpwent是父級視窗控制代碼。如果控制代碼為null,將不會顯示一些有關的對話方塊。如果引數 ipszattributes提供的資訊不夠完善,在建立過程中就會出現對話方塊要求使用者提供相應資訊。

●引數frequest可以設定為下面的數值之一:

odbc_add_dsn: 增加_個新資料來源

odbc_conhg_dsn: 配置(修改)乙個已經存在的資料來源

odbc_remove_dsn: 刪除乙個已經存在的資料來源

odbc_add_sys_dsn: 增加乙個新的系統資料來源

odbc_config_sys_dsn: 更改乙個已經存在的系統資料來源

odbc_remove_sys_dsn: 刪除乙個已經存在的系統資料來源

●引數lpszdriver是資料庫引擎名稱,可以參見odbc管理器中對odbc驅動程式的描述。比如要載入的是excel資料庫,那麼資料庫引擎名稱就為microsoft excel driver(*.xls)

●引數lpszattributes為一連串的"keyname=value"字串,每兩個keyname值之間用\0""字元隔開(或者\0隔開即可)。keyname主要是新資料來源預設的驅動程式註冊說明,其中最主要的關鍵字是"dsn"(新資料來源的名稱)和"dbq"(資料來源的位址),其餘關鍵字則根據不同的資料來源有不同要求。關於lpszattributes引數的具體設定,詳細可以參考windows系統目錄下幫助檔案odbcjtn.hlp主題目錄標籤中的"odbc api函式改變|sqlconfigdatasource"條目。

sqlconfigdatasource的應用條件:

使用sqlconfigdatasource函式之前,必須把odbcinst.h檔案包含在工程標頭檔案中,將odbccp32.lib加入工程,同時保證odbccp32.dll執行時處於系統子目錄下。

若使用vc6.0,在安裝目錄中的lib資料夾下尋找odbccp32.lib並新增到工程中;若使用的是vc2005,貌似安裝目錄的lib資料夾下沒有該lib檔案,只能使用vc6.0下的......

例:"microsoft access driver (*.mdb)",

"dsn=trydb\0

""dbq=d:\\trydb.mdb\0

");

我在編寫的過程中,當把**寫成死**的時候可以正確註冊odbc資料來源。,當我採用相對路徑或者對話方塊等方式執行的時候卻總是不能正確註冊。

除錯發現還是引數lpszattributes為一連串的"keyname=value"字串,每兩個keyname值之間用\0""字元隔開(或者\0隔開不正確

後來採用如下方法獲得成功:

char szatr[256];

sprintf(szatr,"dsn=%s!dbq=%s!defaultdir=%s!! ","myimage",

lpszfile,spath);

int nlen;

nlen = strlen(szatr);

for (int i=0; i

if (false == sqlconfigdatasource(null,

odbc_add_dsn, "microsoft access driver (*.mdb)\0",

(lpcstr)szatr))

else return true;

SQL Server中配置ODBC資料來源

單擊 開始 windows系統 控制面板 開啟控制面板 單擊 管理工具 odbc資料來源 32位 開啟odbc資料來源配置對話方塊 在資料來源配置對話方塊中單擊 系統dsn 選項卡下的 新增 按鈕,建立資料來源。在建立資料來源對話方塊中選擇 sql server 為驅動程式,單擊 完成 按鈕 在配置...

ODBC 動態配置資料來源

sqlconfigdatasource hwnd hwndparent,word frequest,lpcstr lpszdriver,lpcstr lpszattributes hwndparent 一般置成null即可。frequest 根據需求可以是 odbc add dsn 增加乙個新資料來...

ODBC資料來源

一組資料的位置,可以使用 odbc 驅動程式訪問該位置。也是一種儲存的定義,包含 odbc 應用程式連線到 資料來源所需的全部連線資訊。odbc open database connectivity,開放資料庫互連 是微軟公司開放服務結構 wosa,windows open services arc...