關於ODBC API程式設計中如何判斷DSN是否已存在

2022-08-03 09:03:10 字數 739 閱讀 3448

在odbc程式設計中,要連線資料庫必須先配置好資料來源,windows自帶了乙個資料來源配置工具,可以在控制面板的管理工具中找到,也可以在執行中直接輸入odbcad32.exe來開啟。但對於程式開發者來說,我們怎麼能讓使用者做這些繁瑣的事呢!當然,微軟也想到了這點,所以就有了sqlconfigdatasource這個api,它能自動配置資料來源,具體參見msdn。

那麼問題來了,乙個程式,一般不會只在使用者電腦上執行一次,所以不可能每次程式執行都來配置資料來源吧,怎樣檢測使用者電腦上是否已經存在我們需要的資料來源了呢?

其實,windows中已經存在的資料來源都儲存在登錄檔中:

hkey_local_machine\software\odbc\odbc.ini       下儲存了所有系統dsn

hkey_current_user\software\odbc\odbc.ini        下儲存了所有使用者dsn

因此,我們可以使用登錄檔操作api以 hkey_local_machine\software\odbc\odbc.ini\dsn名稱 為引數開啟,判斷一下返回值不就行了嗎?

**如下:

hkey   key;

if(regopenkeyex(hkey_local_machine,   "software\\odbc\\odbc.ini\mydb ",   0,   key_all_access,   &key)   ==   error_success)

else

regclosekey(key);

關於iOS中鏈式程式設計

之前一直沒有使用masonry,最近因為比較閒,就嘗試使用了下masonry,但是masonry這種和objec c大相庭徑的寫法,搞得我有點懵逼,於是今天簡單學習了一下鏈式程式設計。為了鞏固知識,於是有了這篇文章。不足之處希望大家不吝賜教。在筆者的理解中,其實鏈式程式設計相對於我們常用的方法,最大...

關於IAP程式中函式跳轉以及堆疊合法性判斷的理解

在上文中製作了iap過程中的bootloader,有如下 if io uint32 t user flash first page address 0x2ffe0000 0x20000000 上面這句話的意思是把使用者 的首位址裡面的資料拿出來,看看是不是以0x20000000開頭。x 0x2ffe...

關於程式設計中的編碼問題

對於我們開發的過程中 一直喜歡 用utf 8 為什麼呢 因為屬於國際化 gb 2312 俗稱國標碼 主要是中國在用 支援漢字 英文本母 a html view plain copy 位元組數 1 編碼 gb2312 位元組數 1 編碼 gbk 位元組數 1 編碼 gb18030 位元組數 1 編碼 ...