韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當前位置:蘿卜系統(tǒng)下載站 > 技術開發(fā)教程 > 詳細頁面

在VB中動態(tài)加載ODBC數(shù)據源

在VB中動態(tài)加載ODBC數(shù)據源

更新時間:2022-10-13 文章作者:未知 信息來源:網絡 閱讀次數(shù):

在編寫數(shù)據庫應用程序時,常常需要用戶自己在控制面板中配置ODBC數(shù)據源。然而對一般用戶而言,配置ODBC數(shù)據源的工作是有一定困難的。因此,如果能在程序中動態(tài)加載ODBC數(shù)據源,就能大大方便應用程序最終用戶的使用。本文介紹在VB中動態(tài)加載ODBC數(shù)據源的兩種方法。

方法之一:修改注冊表
  一般情況下,用戶在控制面板中配置好ODBC數(shù)據源后,Windows系統(tǒng)會將用戶配置的信息寫在注冊表中。當應用程序需要用到數(shù)據源時,Windows會通知底層接口查閱注冊表中該數(shù)據源的配置。例如,如果配置了系統(tǒng)數(shù)據源,Windows系統(tǒng)會根據配置修改注冊表中的 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI 主鍵。因此,我們只要在應用程序中使用API函數(shù)來完成Windows對注冊表所做的工作,就可以達到動態(tài)加載數(shù)據源的目的。
  對于不同類型的數(shù)據源,注冊表修改的內容也會各有不同,但基本上都要修改兩個地方:一個是在ODBC.INI子鍵下建立與數(shù)據源配置相關的項;另一個是在\ODBC.INI\ODBC Data Source子鍵下建立一個新項,以告訴驅動程序管理器ODBC數(shù)據源的類型信息。
下面以配置一個ODBC系統(tǒng)數(shù)據源為例,給出一段動態(tài)加載Access數(shù)據源的VB例程:

Public Function LoadDbSource(StrSourceName, StrSourceDB, StrDescription As String) As Boolean
Dim hKey As Long '要打開的注冊表鍵句柄
Dim lReturn As Long '注冊表API函數(shù)的執(zhí)行返回值
Dim StrSubKey As String '要打開的子鍵
Dim Buffer As String * 255
Dim StrSysDir As String
Dim StrDbq, StrDriver, StrFil, StrUid As String
Dim LngDriverID, LngSafeTransactions As Long
Dim StrImplict, StrUserCommit As String
Dim LngPageTimeout, LngThreads, LngMaxBufferSize As Long
Dim StrDbType As String

'檢測是否安裝 Access ODBC 驅動 odbcjt32.dll
lReturn = GetSystemDirectory(Buffer, 255)
StrSysDir = Left(Buffer, lReturn) '獲取Windows系統(tǒng)目錄
StrDriver = StrSysDir & "\odbcjt32.dll"
If Dir(StrDriver) = "" Then
MsgBox "您的計算機中沒有安裝Access的ODBC驅動程序odbcjt32.dll,無法加載數(shù)據源。", vbOKOnly + vbCritical
LoadDbSource = False
Exit Function
End If

StrSubKey = "SOFTWARE\ODBC\ODBC.INI" & "\" & StrSourceName
lReturn = RegCreateKey(HKEY_LOCAL_MACHINE, StrSubKey, hKey)
If lReturn <> ERROR_SUCCESS Then
LoadDbSource = False
Else
StrDbq = StrSourceDB
LngDriverID = 25
StrFil = "MS Access;" '文件類型"MS Access" for Microsoft Access
LngSafeTransactions = 0

Call RegSetValueEx(hKey, "DBQ", 0&, REG_SZ, StrDbq, LenB(StrDbq))
Call RegSetValueEx(hKey, "Description", 0&, REG_SZ, StrDescription, LenB(StrDescription))
Call RegSetValueEx(hKey, "Driver", 0&, REG_SZ, StrSourceDB, LenB(StrSourceDB))
Call RegSetValueEx2(hKey, "DriverID", 0&, REG_DWORD, LngDriverID, 4)
Call RegSetValueEx(hKey, "FIL", 0&, REG_SZ, StrFil, LenB(StrFil))
Call RegSetValueEx(hKey, "UID", 0&, REG_SZ, "", LenB(""))
Call RegSetValueEx2(hKey, "SafeTransaction", 0&, REG_DWORD, LngSafeTransactions, 4)
Call RegCloseKey(hKey)

StrSubKey = StrSubKey & "\Engines\Jet"
lReturn = RegCreateKey(HKEY_LOCAL_MACHINE, StrSubKey, hKey)
If lReturn <> ERROR_SUCCESS Then
LoadDbSource = False
Else
StrImplict = ""
StrUserCommit = "Yes"
LngPageTimeout = 5
LngThreads = 3
LngMaxBufferSize = 2048

Call RegSetValueEx(hKey, "ImplictCommitSync", 0&, REG_SZ, StrImplict, LenB(StrImplict))
Call RegSetValueEx2(hKey, "MaxBufferSize", 0&, REG_DWORD, LngMaxBufferSize, 4)
Call RegSetValueEx2(hKey, "PageTimeout", 0&, REG_DWORD, LngPageTimeout, 4)
Call RegSetValueEx2(hKey, "Threads", 0&, REG_DWORD, LngThreads, 4)
Call RegSetValueEx(hKey, "UserCommitSync", 0&, REG_SZ, StrUserCommit, LenB(StrUserCommit))
Call RegCloseKey(hKey)

'設置ODBC數(shù)據庫引擎名稱
lReturn = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", 0&, KEY_WRITE, hKey)
If lReturn <> ERROR_SUCCESS Then
LoadDbSource = False
Else
StrDbType = "Microsoft Access Driver (*.mdb)"
lReturn = RegSetValueEx(hKey, StrSourceName, 0&, REG_SZ, StrDbType, LenB(StrDbType))
If lReturn = ERROR_SUCCESS Then LoadDbSource = True
End If
End If
End If
End Function
在上面的程序中使用了標準的Win32 API注冊表操作函數(shù),在VB "API文本瀏覽器"工具和MSDN中可以很容易查到其詳細說明。

方法之二:使用ODBC DLL提供的函數(shù)
  Windows系統(tǒng)目錄中提供有一系列專門操作ODBC的動態(tài)鏈接庫,其中Odbcinst.dll提供了一個可以動態(tài)的增加、刪除和修改數(shù)據源的函數(shù)SQLConfigDataSource()。微軟在MSDN的幫助文檔中提供了對該函數(shù)的詳細使用說明:
BOOL SQLConfigDataSource(
HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszAttributes);
其中:hwndParent為調用窗體句柄;fRequest為操作碼,通過設置不同的值可以實現(xiàn)對數(shù)據源的增加、刪除、修改操作,這些對應值可以在MSDN中查到;lpszDriver參數(shù)傳遞數(shù)據庫引擎,lpszAtrributes是配置信息列表,配置信息條目之間以字符代碼Chr(0)分隔。同樣,我們以上面的Access數(shù)據源配置為例寫一個標準函數(shù):

Private Const ODBC_ADD_SYS_DSN = 4
Private Declare Function SQLConfigDataSource Lib "odbccp32.dll" (ByVal hwndParent As Long, ByVal fRequest As Long, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long

Public Function LoadDbSource2(StrDriver, StrAttributes As String) As Boolean
LoadDbSource2 = SQLConfigDataSource(0&, ODBC_ADD_SYS_DSN, StrDriver, StrAttributes)
End Function

在VB程序中調用這個標準例程:
Dim StrAttributes As String
StrAttributes = "DSN=AccessODBC2" & Chr(0) & "Desciption=動態(tài)加載ODBC示例" & Chr(0)
StrAttributes = StrAttributes & "Dbq=" & App.Path & "\MyDb.mdb" & Chr(0) & "FIL=MS Access;" & Chr(0)
StrAttributes = StrAttributes & "MaxBufferSize=2048" & Chr(0) & "PageTimeout=5" & Chr(0)
Call LoadDbSource2("Microsoft Access Driver (*.mdb)", StrAttributes)


  上述兩種方法都可以實現(xiàn)VB動態(tài)加載ODBC數(shù)據源,對于不同類型的數(shù)據源,注冊表中記錄的內容會有一些不同。所以,除查閱有關文檔外,程序員可以先通過手工在控制面板中配置數(shù)據源,然后再通過觀察注冊表中的內容再進行編程。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網站地圖xml | 網站地圖html
国产成人高清| xxxx在线免费观看| 国产乱码精品一区二区三区日韩精品| 国产又粗又长又大视频| 亚洲狠狠婷婷综合久久久久图片| 日韩精品在线观| 色网综合在线观看| 日韩视频在线观看免费| 丁香花在线影院观看在线播放| 中国女人做爰视频| 日韩啪啪网站| 国产精品熟女久久久久久| 成人福利视频| 进去里视频在线观看| 成人v精品蜜桃久久一区| 日本视频在线免费| 婷婷亚洲天堂| 亚洲午夜免费电影| 中文字幕精品视频在线| 今天免费高清在线观看国语| 夜间精品视频| 天堂av在线网| 91在线丨porny丨国产| 国产啊啊啊视频在线观看| 欧美一区二区成人| 国产午夜福利在线播放| 国产传媒久久文化传媒| 不卡在线视频中文字幕| 国产二级c片l毛片| av日韩中文字幕| 精品网站www| 精品一性一色一乱农村| 国内一区二区三区在线视频| 欧美国产日韩一区二区| 99视频资源网| 日韩av午夜| 中文字幕+乱码+中文乱码91| 无码人妻黑人中文字幕| 青娱乐国产91| 中文字幕一区二区三区在线视频| 狠狠操夜夜操| 在线视频中文亚洲| 三级小说欧洲区亚洲区| 久草视频在线观| 色综合激情久久| 日韩欧美亚洲一区二区三区| 精品国产一区二区三区麻豆免费观看完整版| 91免费视频污| 6080亚洲理论片在线观看| 国产露脸无套对白在线播放| 日日躁夜夜躁aaaabbbb| 色婷婷av一区二区三区大白胸| 欧美日韩大片一区二区三区| 欧美专区在线播放| 糖心vlog免费在线观看| 色哟哟免费网站| 美女精品在线观看| 69久久久久| 在线不卡视频一区二区| 欧美男男青年gay1069videost| 性欧美暴力猛交另类hd| 疯狂做受xxxx高潮欧美日本| 欧美日韩免费精品| 国产吃瓜黑料一区二区| 国产精品久久三| 五月天亚洲一区| 在线天堂中文www视软件| 日韩福利一区二区三区| 亚洲精品免费播放| 91精品在线视频观看| 999在线观看视频| 手机看片福利永久| 亚洲精品国产偷自在线观看| 99国产视频| 欧美在线观看成人| 九色91视频| 久久精品一区二区三区不卡免费视频| 亚洲成人综合在线| 欧美人与性动交α欧美精品济南到| 欧美视频在线免费| 国产绿帽一区二区三区| 一区二区高清视频在线观看| 欧美久久精品午夜青青大伊人| 国产做受高潮69| 春意影院免费入口| 动漫av一区二区三区| 麻豆精品一二三| 亚洲欧美国产精品va在线观看| 蜜桃传媒在线| 日韩三级视频中文字幕| 国产精品福利av| 久久婷婷综合中文字幕| 91麻豆福利精品推荐| 久久在精品线影院精品国产| 91精品国产欧美一区二区成人| 女人丝袜激情亚洲| 成人福利电影精品一区二区在线观看| 在线不卡一区二区| 99riav视频在线观看| 亚洲成av人片一区二区梦乃| 中文字幕1234区| 国产高清大尺度一区二区不卡| 国产精欧美一区二区三区白种人| 国模精品一区二区| 很污的网站在线观看| 色图欧美色图| 国产精品115| 欧美久久天堂| 国产欧美一区二区精品久久久| 理论片午午伦夜理片在线播放| 欧美一二三区视频| 国产色在线观看| 亚洲精品免费一区二区三区| av电影天堂一区二区在线观看| 男人天堂电影网| 成人做爰高清视频网站| 欧美在线观看视频| 挪威xxxx性hd极品| 热re99久久精品国产99热| 97国产精品视频人人做人人爱| 久久午夜精品视频| 色呦呦中文字幕| 国产精品久久久精品四季影院| 午夜福利视频一区二区| abab456成人免费网址| 特级毛片在线免费观看| 最新真实国产在线视频| 巨大荫蒂视频欧美大片| 欧美肥妇毛茸茸| 粉嫩一区二区三区在线观看| 亚洲日产国产精品| 日韩美女主播在线视频一区二区三区| 国产欧美一区二区三区米奇| 日韩在线中文视频| aaaaa级少妇高潮大片免费看| 四季av在线一区二区三区| 国严精品久久久久久亚洲影视| www.成人在线观看| 91精品久久久久久久久青青| 日本高清视频在线播放| 影音先锋男人资源站| 精品国产一区二区三区无码| 国产成人精品午夜视频免费| 91在线观看一区二区| 你懂的视频在线免费| 天堂а√在线官网| 在线看日本不卡| 国产免费成人在线视频| 狠狠v欧美v日韩v亚洲ⅴ| 国产日韩一区二区三区在线播放| 久久精品午夜福利| 国产成人精品a视频一区www| 97青娱国产盛宴精品视频| 在线精品观看国产| 色噜噜久久综合伊人一本| 成人高清免费观看mv| 国产精品18久久久久| 成人亚洲性情网站www在线观看| 午夜激情在线观看| 国产xxx在线观看| 亚洲国产综合av| 国产在线视频你懂的| 国产三区精品| 国产精品高潮呻吟久久av无限| 亚洲区一区二区| 污污网站免费看| 最近中文字幕mv2018在线高清| 欧美三级韩国三级日本一级| 免费观看成人毛片| 欧美成人性生活视频| 欧美综合国产精品久久丁香| youjizz国产精品| 在线国产视频| 人在线成免费视频| 蜜桃视频久久一区免费观看入口| 日韩av一二三四区| 在线人成日本视频| 欧美黑人双插| 91www成人久久| 欧美xx网站| 网爆门在线观看| 国产毛片在线看| 黄色污在线观看| 福利片一区二区| 欧美精品入口蜜桃| 国产精品99久| 日韩在线观看电影完整版高清免费悬疑悬疑| 国产精品免费视频网站| 一区二区三区久久精品| 久久久精品福利| 欧美极品aaaaabbbbb| 大陆一级毛片免费观看| 国产一区二区三区黄视频| 天堂在线一区二区| caoporn97在线视频| 无码精品国产一区二区三区免费| 日韩久久久久久久久久久久久| 在线免费av网址| 亚洲国产精品日韩专区av有中文| 69av一区二区三区| 欧美高清视频一二三区| 日韩欧美精品一区二区综合视频| 久久国产成人午夜av影院宅| 亚洲一区视频| 亚洲第一欧美| 色大师av一区二区三区| 黄网站免费在线播放| 18禁裸男晨勃露j毛免费观看| 小早川怜子影音先锋在线观看| 久久99热国产| 欧美亚洲免费高清在线观看| 亚洲图片欧美综合| 91极品视频在线| 一二区在线观看| 一区二区乱码| 久久精品123| 免费国产黄线在线观看视频| 一级毛片免费高清中文字幕久久网| 无码专区aaaaaa免费视频| 一区二区视频播放| 在线视频你懂得一区二区三区| 中文字幕一区二区三中文字幕| 国产精品视频男人的天堂| 国产精品久久久久久久久久免费| 久久电影在线| 日本三级在线播放完整版| 一区二区三区蜜桃| 欧美极品美女电影一区| www999久久| 香港伦理在线| 四季av一区二区凹凸精品| 国产成人强伦免费视频网站| 国产不卡一二三| 日本最新在线视频| 三级久久三级久久久| 精品国产成人在线影院| 亚洲熟女乱综合一区二区三区| 波多野结衣在线观看一区| 疯狂揉花蒂控制高潮h| 另类一区二区| www.久久久久久久久久久| 久久国内精品自在自线400部| 黄色网址在线免费看| 亚洲综合欧美色图| 亚洲小视频在线播放| 国产三级av在线| 激情亚洲一区二区三区四区| 亚洲精品欧洲精品| 亚洲另类在线一区| 91久久精品日日躁夜夜躁国产| 久久国产精品99国产| 69堂成人精品免费视频| 国产精品毛片久久久久久久av| 巨胸大乳www视频免费观看| 波多野结衣片子| 综合免费一区二区三区| 乱中年女人伦av一区二区| 欧美伊人亚洲伊人色综合动图| 四虎在线精品| 桃子视频成人app| 一级精品视频在线观看宜春院| 久久偷看各类wc女厕嘘嘘偷窃| 99精品在免费线偷拍| 精精国产xxxx视频在线| 亚洲精品tv久久久久久久久久| 日本电影二区| 国产麻豆一区二区三区精品| 亚洲色欲久久久综合网东京热| 精品无码三级在线观看视频| 国产一级片毛片| 国产91ⅴ在线精品免费观看| 欧美成人中文字幕在线| 色姑娘综合网| 成人av高清在线| 日本一级大毛片a一| 欧美aaaaaa| 92精品国产成人观看免费| 亚洲电影影音先锋| 99re精彩视频| 久久精品久久久久| 资源视频在线播放免费| 日日骚一区二区三区| 天天干天天操天天拍| 成人av在线资源网| 欧美日韩在线视频一区二区| 丁香五精品蜜臀久久久久99网站| 在线观看欧美日韩电影| 日韩欧美极品在线观看| 亚洲天堂网站在线| 性chinese极品按摩| 加勒比成人在线| 狠狠色2019综合网| 国产精品老熟女视频一区二区| 日韩国产精品一区二区三区| 久久国产这里只有精品| 91视频免费观看网站| 天天色天天干天天色| 欧美日韩成人在线| 91精品国产一区| 91free张津瑜movies| 五月婷婷丁香综合网| 美女av在线播放| 红桃视频在线观看一区二区| 国产精品x8x8一区二区| 欧美午夜影院| 免费在线视频你懂的| 国产精品爱久久久久久久| 99精品国产热久久91蜜凸| 久久爱com| 精品久久亚洲一级α| 99视频在线播放| 精品视频在线播放色网色视频| 国产人妖ts一区二区| 日韩 欧美一区二区三区| 成人18网址在线观看| 在线天堂中文www视软件| 国产亚洲第一的欧洲日产| www.成人爱| 国产高清亚洲一区| 日韩黄色精品视频| 岛国影视在线观看| 亚洲精品美女免费| 在线免费观看黄色av| 欧美激情一级二级三级在线视频| 在线视频自拍| 亚洲伦理中文字幕| 在线观看av资源| 欧美一卡二卡三卡|