说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何动态新增、移除 ODBC DSN?

HTML文档下载 WORD文档下载 PDF文档下载
VB如何动态新增、移除 ODBC DSN?
版本:VB6 / VB5 / VB4-32

一般我们建立 Client 端 DSN 都是在使用者的机器上进入【控制面板】【ODBC 数据源(32位)】去建立,但是如果我们开发的 APP 使用者很多时,这就有点累人了,所以我们可以將这个动作放在程序中!

新增 DSN 的方法有二种:
1、使用 DBEngine 控件的 RegisterDatabase 方法
2、呼叫 SQLConfigDataSource API

不管使用以上任何一种方法新增 DSN,一共会写入二个地方,一个是注册表,一个是 ODBC.INI。

而刪除 DSN 的方法同上面的第二种方法,呼叫 SQLConfigDataSource API。

以下之模块以 Oracle73 Ver 2.5 为例,在 Form 的声明区中加入以下声明及模块:

Private Const ODBC_ADD_DSN = 1 ' Add data source
Private Const ODBC_CONFIG_DSN = 2 ' Configure (edit) data source
Private Const ODBC_REMOVE_DSN = 3 ' Remove data source
Private Const vbAPINull As Long = 0& ' NULL Pointer

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 Sub CreateDSN(sDSN As String)
Dim nRet As Long
Dim sDriver As String
Dim sAttributes As String
sDriver = "Oracle73 Ver 2.5"
sAttributes = "Server=Oracle8" & Chr$(0)
sAttributes = sAttributes & "DESCRIPTION=" & sDSN & Chr$(0)
'sAttributes = sAttributes & "DSN=" & sDSN & Chr$(0)
sAttributes = sAttributes & "DATABASE=DBFinance" & Chr$(0)
sAttributes = sAttributes & "Userid=Scott" & Chr$(0)
'sAttributes = sAttributes & "PWD=myPassword" & Chr$(0)
DBEngine.RegisterDatabase sDSN, sDriver, True, sAttributes '注一
'nRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_DSN, sDriver, sAttributes) '注二
End Sub

Public Sub DeleteDSN(sDSN As String)
Dim nRet As Long
Dim sDriver As String
Dim sAttributes As String
sDriver = "Oracle73 Ver 2.5"
sAttributes = sAttributes & "DSN=" & sDSN & Chr$(0)
nRet = SQLConfigDataSource(vbAPINull, ODBC_REMOVE_DSN, sDriver, sAttributes)
End Sub
'假设要产生的 DSN 为 Test,实际使用示例如下:

Private Sub Command1_Click()
CreateDSN "Test"
End Sub

Private Sub Command2_Click()
DeleteDSN "Test"
End Sub
'而写到系統的数据如下:
1、ODBC.INI

[ODBC 32 bit Data Sources]
Test=Oracle73 Ver 2.5 (32 bit)

[Test]
Driver32=C:\ORAWIN95\ODBC250\sqo32_73.dll
2、注册表

机码:HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources
名称:Test 数据:Oracle73 Ver 2.5

机码:HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\Test
名称:Description 数据:Test
名称:Driver 数据:C:\ORAWIN95\ODBC250\sqo32_73.dll
名称:Server 数据:Oracle8
名称:UserId 数据:Scott
※注一及注二可任选一种,只要將不使用的方法 Mark 起來即可!
※若您想使用其他之数据库,只要將以上模块稍作修改即可!

MDCC 2015移动开发者大会 八大技术专场首批议题剧透 Apple TV指南:从零开始用Swift开发个tvOS应用 React Native、开源:MDCC平台与技术Android专场全揭秘! 相约MDCC 2015 首批免费展位破茧而出 MDCC 2015召开在即,平台与技术iOS专场大咖来了! 一个iOS开发者对tvOS SDK的初探 前Twitter iOS技术团队负责人:使用第三方库的四大准则 【SDCC讲师专访】巨杉数据库创始人兼CTO王涛:SequoiaDB为何要开源? 对话函数式编程语言Roy之父Brian Mckenna GitLab获400万美元A轮融资,GitLab 8.0将很快到来 【CTO讲堂】如何构建高可用和可伸缩的架构? 未来程序员会被机器取代吗? React Native实战(一):配置和起步 集聚MDCC 2015 免费展位第二波正式放出 【深入浅出Koa】入门知识,带你以现代化开发方式构建Web应用 升级到Node V4的七个理由 支持大量ES6特性 像写SQL一样编写Java数据应用 Swift 2.0实战:如何实现从非零下标遍历数组? 手把手教学:在iOS 8中使用Cocoapods 交互技术前沿与应用实战:MDCC虚拟现实专场议程揭晓 解密“攻城狮使用手册” 技术专家齐聚!MDCC 2015精彩日程全曝光 基于ActiveMQ的消息中间件系统 OneMM逻辑与物理架构设计详解 John Carmack大神亲操刀,为Oculus开发Netflix应用 React Native实战(二):Android的打包 独立游戏的成功秘诀:好设计才是王道 Swift 2.1的新变化 Apple TV实战:用TVML开发第一款tvOS应用 【SDCC讲师专访】阿里王晶昱:云时代的分布式数据库DRDS 硬件研发、嵌入式技术演进:MDCC IoT峰会日程揭晓 专访百度知道iOS团队负责人孙源:代码强迫症的死实践派 在win2000系统下,如何让asp文件中显示小数点前的那个零? 为什么有这么一个问题.... 有人愿意收一个一般菜,但又不是很菜的人为徒吗?? 求救VC中的关于串口通信的问题,想请请看,急急急急急急急急急急急 ZDataGrid For VB & VB.Net 如何将界面做成如xp的样子 请教关于游戏平台的问题。。。 今天不是鬼节啊?怎么这么多早就作古的人都出来了? 超级菜的问题(关于WINNT安装)想要分的快进 怎么写dll文件 怎样插入当前时间和日期到Access数据库中 下面为什么出错了? 有人愿意收一个一般菜,但又不是很菜的人为徒吗??? TADOTable如何实现记录定位?——求救! 谁知道怎么让WEBLOGIC中消息驱动BEAN的例子MESSAGE跑起来?.. 請問各位為何javabean在suse linux的調用問題 请问如何在weblogic中设置一个jms topic?. 请教关于游戏平台的问题!! 使用QuickVxD不能生成 .h ,.cpp .mak文件,那里不对? 请问:框架(Frame)为什么不能动态生成两次 ????????????? 在win2k下有人知道ActiveReports报表怎么自定义打印纸张大小 大家讨论一下运算符重载的问题!!!! 位操作问题?欢迎各位朋友讨论! data控件能连接sqlserver数据源么? 有没有办法使重复的值只显示一个,空值不显示也不要占位置?(急呀!!!) 用TURBO C2.0能不能写32位的软件? 如何设置WN98中的硬盘驱动器盘符 SOS pekie 请教啦! 投影仪投出的图像中间部分呈粉红色,是不是投影仪坏了? 在MYSQL中我想修改root密码,可是总报错说user表是read only,如何把只读的属性去掉? 关于开发网络麻将游戏需求的问题。。谢谢。 关于jsp或applet调用本地DLL的问题 在BCB中如何添加自己的类? 关于APPLET从服务器下载图片的问题! 建议下一次改版的时候考虑一下这个问题:CSDN 的很多页面好像用NetScape不能浏览? 我不用IE很多年了, 因为太容易死机 有没有做股票的朋友? 急!!!50分求购一个在程序中实现按下按钮功能的小程序,多谢了 在图象上的汉字显示问题 请问谁知道把AVI文件转换成BMP位图数据的算法 圣诞快乐 用什么工具可以从exe文件中把资源文件,如图像、图标提取出来? Word与Delphi的结合!高手请进! 贴子为什么掉到第二页上再UP就回不到第一页去了?见龟!——千山一刀 ^^^^^^^^^如何配置sybase的clinet端????^^^^^^^^^^^^^^^^^^^^ 进程与线程 在win2000系统下,构建asp+sql的web站点,但在web页中无法显示出小数点前的零? 如何配置sybase的clinet端? 关于webbrowser。 TO:riolee(随风) 关于directshow的 开始菜单中的运行找不到 请问各位谁能提供 如果把太阳和水星的位置互换一下为什么地球上将会被水淹没 2012年第一季度有几天? 求使(a²+ab)/(b-ab)除以(ab/2)*(b²-ab)/(a²-ab)具有正整数值的所有a的整数值 求和2的126次+3的126次的个位数?我今年刚考上高中,对高中的课程一无所知,我都不太会, 2012年第一季度多少天? a²+b²-2a-6b+10=0,则a²- b²除以ab=— 地球在很早以前是什么样子的?地球只有46亿岁 怎么跑出50多亿年前了? 2012年的第一季度是多少天 已知∠1和2∠互补,∠3和∠4互余,求证;∠3=二分之一(∠1-∠2) 3046年的地球是什么样子的? 0.5+4/5*0.5+1/2等于多少, 已知角a和角b互为补角,角3与角2互余 ,请说明角3=1/2(角1--角2)已知角1和角2互为补角,角3与角2互余 请说明角3=1/2(角1--角2) 地球原来是什么样子原来是什么样子?现在又是什么样子?将来会怎样? 0.5年等于多久 0.1年等于多久 已知角1和角2互补,角2和角3互余,用角1、角2来表示角3 地球是什么样子的 (a+b分之2ab²)³除以(a²-b²分之ab³)乘以{2(a-b)分之1}² 先化简在求值(a+b/2ab²)²除以(a²-b²/ab²)²除以[1/2(a-b)]²其中a=-1/2,b=2/3(要过程啊)2(a-b)是连到一起的不要看错了赶紧啊急急急急急精英们都到那里了啊(求标准答案100分啊 以后地球是什么样子的? (-1\2 ab)³(2ab³)² 23×(-5)-(-3)÷128分之3 一个3位数,左边第一位是7,当把7移动到个位时,所得的新的三位数比原三位数小126.原三位数是多少?用方程解法 a=2-√2,b=2+√2,求(a³b+a²b²/a²+2ab+b²)÷(a²-ab/a²-b²) 化简a²-b²/a²﹢ab 126^10的千位数,百位数,十位数和个位数的和怎麼快速运算啊时间限制10秒之内.能解释最好. 2008年第29届奥运会在北京举行,这一年的第一季度有几天? 化简:(√a²+a√b)/(ab-b²)-(a+√ab+b)/(a√a-b√b) 已知a=-3,B=2,求代数式(1/a+1/b)除以a²+2ab+b²/a+b的值 2008年第29届奥运会在北京举行,这一年的第一季度有( )天. (a²-b²)/(ab)-(ab-b²)/(ab-a²)可化简为已知x²+5xy+y²=0,则(y)/(x)+(x)/(y)的值为 先化解代数式(a²-b²分之a²+b²-a+b分之a-b)÷(a-b)(a+b)²分之2ab然后请你去一组a,b的值代入求值.思考:所取a,b的值要满足什么条件? (a²b)²除以(2ab)²×(3a)²=?(a²b)的平方除以(2ab)²×(3a)²=? 化简ab分之a²-b²-ab-a²分之ab-b²= 温哥华是什么国2011年第一季度有几天 如果a²=3a,那么a=3,这句话对么? 怎么作一个角是已知角的二分之一? 初一600字左右作文《预言2100年的地球生活》不一定要全文,给些建议,作文思路(开头结尾),但是一定要快, 2011年第一周是哪几天? a²-3a-1=3 求a求详细过程 随着科技水平的提高,人类对地球形状的认识经历了“天圆地方”、“圆球体”、“扁球体”和“不规则扁球体”的漫长过程.人类对地球形状的认识过程.体观的哲理是 A 创新是对既有理论 2011年的第一季度有多少天,这一年共有多少天 386000加上百分17的税是多少 人类证明地球形状的最科学依据是 还有2011年的第一季度的收益 已知a+b=2,则(2分之1)a²+(2分之1)b²+ab的值是—————— 根号3乘以9开3次方 再除以6开3次方 先化简在求值(a-b分之a - a²-2ab+b²分之a²)除以(a+b分之a - a²-b²分之下面还有先化简,在求值(a-b分之a - a²-2ab+b²分之a²)除以(a+b分之a - a²-b²分之a²)+1求a=3分 已知a+b=-2,ab=-2分之5,求a(a+b)(a-b)-a(a+b)²的值原式=a(a²-b²﹚-a﹙a+b﹚²=a﹙a²-b²﹚-a﹙a²+2ab+b²﹚=a[﹙a²-b²﹚-﹙a²+2ab+b²﹚]=a﹙-2b²-2ab﹚=-2ab² 某商品编号是一个三位数,现在五个三位数:126,918,574,320,694,其中每一个数与商品编号恰好都有一个数字在同一数位上.这个商品编号是多少?具体怎么算 0+(-3.71)+(+1.71)+(-5) 已知a-b=-10,求a²+b²的和除以2,再减ab的值 某商品编号是一个三位数,现有五个三位数:126,918,574,320,694,其中每一个数与商品编号恰好都有一个数字(补充上面)在同一个数位上.这个商品编号是多少?明天就要 数学达人来回答啊(a+b分之2ab²)³除以(a²-b²分之ab³)乘以{2(a-b)分之1}² 平年一年有( ) 天,闰年一年有( ) 天.1900年2月的下旬有( ) 天. 一个两位数的末尾填上一个零,所得的三位数比原数大126.求原来这个两位数 2012年的第一季度有几天 已知:如图角1等於角2 求证:角3等於二分之一(角acb减角b) 地球上有多少水,再过几亿年会把所有陆地淹没吗 2012年第一季度有几天,全年有几天? 已知角一小于角二,那么角二与二分之一(角一减角二)之间的关系是?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn