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

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 起來即可!
※若您想使用其他之数据库,只要將以上模块稍作修改即可!

用 QuickReport for Delphi 制作报表 用Delphi 开发数据库程序经验三则 用Delphi 实 现 不 同 数 据 库 系 统 之 间 的 数 据 转 移 用DELPHI本身的控件输出TABLE表数据 用Delphi编程访问SQLServer数据库 用delphi编写医院的复杂报表 用Delphi程序维护Paradox 数据表的索引 用Delphi的InterBase数据库开发C&S应用程序 用Delphi进行数据库之间转换 用Delphi开发“瘦”单机数据库应用系统 用Delphi如何实现VFP中的Cache特性 用Delphi设计数据库应用的几点体会 在我们日常工作中,常会碰到这样一个难题:一大堆-Delphi资料 用DELPHI制作应用软件 用Dephi 程 序 维 护Paradox 数 据 表 的 索 引-Delphi资料 用Dephi程序维护Paradox数据表的索引-Delphi资料 用InstallShield制作数据库应用系统的安装程序-Delphi资料 在BDE中使用ASCII-Delphi资料 在DBMemo中查找文字-Delphi资料 在Delphi 程序中维护DBF 数据库 在Delphi 中 利 用 Tbatch 组 件 完 成 数 据 批 处 理 在Delphi 中使用计算出的字段 在Delphi3 程 序 中自 动 检 测、 建 立 数 据 库 别 名 和 表 格 在Delphi3程序中自动检测、建立数据库别名和表格 在Delphi4 BDE中配置Access数据库 在Delphi5 中修改了Delphi自带的VCL Source文件后怎样重建Delphi的库文 在DELPHI程序中动态设置ODBC数据源 在DELPHI程序中使用ADO对象存取ODBC数据库 在DELPHI程序中自动设置ODBC数据源 在Delphi的DBGrid中插入其他可视组件 在Delphi的Socket编程中如何从服务器向指定的客户机发送信息? 数据追加求教:谢谢您!!!! 请问InputBox在framework 类库里面有没有代替的阿? 为什么我写到文件中的字符总长度比我实际应该要写的多? 如何使dbctrlgrid多选,并使鼠标右击相当于鼠标左击 关于静态IP地址,急!!! 如何将tomcat做为windows的一项服务启动? 请问各位大虾,哪有paradox(INPRISE 公司产品)数据库(*.DB)的资料? 非法操作的问题 请问各位大虾,哪有paradox(INPRISE 公司产品)数据库(*.DB)的资料? 各位大虾救命啊!请问怎么在一个DIALOG中使用RICHEDITVIEW,谢谢大家了 ACCESS的删除问题 我有“处女”情结,可.............. 菜问题,,马上给分sendto问题 while和for的区别 安装的问题 我喜欢上公司的JJ怎么办????? 谁能帮我反编译?急 1.7gmsdn如何改成3张碟刻出来 启动慢? 有什么方法实现点击"提交"按钮后,弹出一个框显示表单里的数据,"确定"后再提交,"取消"后不提交? 请教vb 字符串问题 急!明天要啊!(帮忙啊!)分在另一贴给! 请问如何创建一个组控件,然后又可以动态调用?请进!:) 用Jbuilder开发,怎样配置才能开发j2me? 关于HOOK和键盘屏蔽的问题??? 如何在自己的网页上嵌入google的页面翻译功能 有关2k的内存问题 阴谋家已被清除!大家尽兴的庆祝呀! 问一下 C++基础的弱智(20分钟内结贴) 高手请看:实形变量在不同的过程中调用问题?(大家都要遇到的问题,来着有分!) 还是没解决呀!!1 350元左右的MP3播放器谁好阿?你给推荐一下? 由于工作需要,将要转到Linux平台,请问那位知道有什么好的SQL Client在Linux下? 昨天做成功了有限集手写汉字识别的程序,高兴,散分!!! SOS。。。一个很基础的问题 。。 系统设计和软件设计的说明书问题 [请问]两个JavaScript问题 一个企业的办公系统,使用人数5k人,预算多少合适? 我中了“冰河” 怎么办? 菜鸟问题:linux下怎么把文件a和b压缩成c啊? 请问大家一些事情(关于反汇编) 菜鸟问题:linux下怎么把文件a和b压缩成c啊? 资源管理器中选中的多个文件怎样传给我的程序 高分求购网页 在哪能下载SYBASE11.5的客户端和服务器端?急!!!!! 显示器的问题 请问如何搜索到网络中所有的消息名,即用Net Name命令显示出来的 急,有办法用java做个程序:输入“(3>4)or(3>5)",判断后输出其对应的bool值吗? 怎么在自己的程序里注册一个组件? 问一个小问题,高分相赠! 用氢氧化钠溶液处理硫在氧气中燃烧产生的气体.这句话为什么正确?请说明原因. 农业生态系统中主要的有毒有害物质有哪些及它们的毒害范围 关于去掉绝对值的问题|x-1|+|x+1| 物质的量浓度相同的NH4HCO3和NaHCO3哪个中碳酸根离子浓度较大?为什么?不是都是强电解质吗? 高能磷酸健水解释放的是什么能 为什么取代反应要用纯溴而加成反应用溴水? 具有以下自旋量子数的原子核中,目前研究最多用途最广的是(  )  A.I=1/2; B.I=0;C.I=1;  D.I>1 3.下列化合物中的质子,化学位移最小的是( )A.溴甲烷; B.甲烷; C.碘甲烷; 好奇害死猫 CURIOSITY KILLS THE CAT怎么样 请找Jack接电话怎么用英语说 如果想将石灰石和盐酸反应生成的气体收集起来,该如何进行操作?如果用连接好的装置 为神马π等于3.1415926…… JC/T420-1991水泥原料中氯的化学分析方法 将石灰石和盐酸反应生成的气体收集起来 需要仪器; 连接方法;将石灰石和盐酸反应生成的气体收集起来 需要仪器; 连接方法; 建最美上饶市,做最美上饶人 作文(急) excel表格中,比较数值大小,自动填充颜色?excel表格中,当B1A1,表格底色自动填充绿色, 目前人类的科学能不能把人类“变成丧尸” 九江美丽的景色作文 潜水员在水中看岸上的小鸟,下图中能正确表示其光线的传播大致路径的是答案为何是C,而不是B? 从人类拍丧尸开始总共有多少部丧尸片或有关丧尸片.大片和小片全都告诉我啊,一个也不能少啊.把名称也告诉我,在此我就多谢了. 建最美上饶市,做最美上饶人作文450字左右,觉得好悬赏再题哦,明天之前. ajax异步请求如何理解RT 有没有一些丧尸片,里面的某些丧尸有人类意识的就是说里面的人被咬后,变成了丧尸,但是有人类意识的, 关于描写上饶的作文 等比数列an满足a1=1,0<q<1/2,且对任意等比数k,ak-(a(k+1)+a(k+2))是该数列中的某一项 求q取值集合 丧尸是人类吗人的定义到底是什么.是指人的意识是人,还是指身体是人.如果说人得身体叫人那么丧尸是人吗.若人的意识叫人.那没有意识的植物人叫人吗.如果一个植物人苏醒了,那么他没苏醒 行李直挂用英语怎么说? 潜水员在水下观察岸边一棵树的树梢,他看到的是 变高了的树梢的虚像还是实像?如题 在我们的世界,无论是现在是未来,发生类似“T病毒”在四周围传播,人类变成丧尸的事件真的不会发生吗?各位有没有想过,若然有某位野心家真的掌握了这种生化技术,他真的不会研制下去?还 Care killed a cat,中文意思是什么? 该同志的成份、年龄、问你话程度、政治面貌等基本情况,家庭主要成员和主要社会关系的基本情况. curiosity kills the cat 的中文谚语 care kill a 大智慧里,个股,向前复权,和向后复权各是什么意思?为什么要向前复权? Why do people say "curiosity killed the cat"?为什么说“好奇害死猫”呢?它出自哪里? care kills a cat.看不懂这句话,是个成语的意思,请翻译 股票中的向前复权、向后复权、高级复权、全流通复权和除权指的是什么啊?能举个例子吗? 江西省上饶市铅山县有哪些景色 a stray cat 是什么意思啊 股票向前复权与向后复权的核心区别是什么向前复权与向后复权的核心区别是什么,对股票买卖操作影响在那里? 托福分数修改分数不理想怎么办呢!实在是烦.童鞋介绍了滕讯:『 13 • ⒉9 • 306⒎ 』 实在是不错,加了12分,很好!已经过去半年了.3Q 向含有amolAlCl3的溶液中加入含bmolNaOH的溶液,生成Al(OH)3沉淀的物质的量可能是( ) ①amol ②bmol ③a/3mol ④0mol ⑤(4a-b)mol生成沉淀的物质的量可能是下列各项中的.和3 股市上要复权,请问有向前、后复权,还有全流通向前向后复权,还有全流通除权.如果我想复权到底是用哪种? 怎么修改托福成绩单 如何修改托福成绩单 大学托福成绩 向含有amolALCI3的溶液中加入含有bmolKOH额溶液求生成的沉淀物质的量n(oh-):n(al3+) al元素的存在形式 al(oh)3沉淀量 b:a_时 al(oh)3 _________b:a_ al(oh)3+al3+ 交割与交收分别什么意思? 托福成绩修改?托福成绩单怎么修改?托福成绩单如何修改?我查询到一家诚达修改成绩不知道怎么样q8610-8127 一道物理证明题将任意多个质点从某一点以同样大小的速度|V|,在同一竖直面内沿不同方向同时抛出,试证明在任一时刻这些质点分散处在某一圆周上 到期交割和商品交收区别期货交易和远期交易里面有个区别就是期货交易履约方式为到期交割和对冲平仓,远期交易是商品交收.那么到期交割和商品交收有什么区别? 关于NaHCO3和NH4HCO3的一个问题取一定量NaHCO3和NH4HCO3分别加热到300℃使之完全分解,在该温度和相同压强下,分别收集到的气体体积之比是1:6,则原来NaHCO3和NH4HCO3的物质的量之比是______.解析:有2Na 托福成绩可以修改吗?怎么修改托福成绩? 物理证明题一道此球表面电荷均匀分布,从球心移动到球的顶部做功W,求证,从球心向反向延长线上移动R的距离做功为-W不是很明白……我比较白……请说明白一点好吗 托福成绩单怎么取呢! 符号表情 :-@ 用手挤瓶子,里面的水液面上升,猜想是水的热胀冷缩,要求证明不是用0~4°C的水来测试,可以吗是证明。我用的是0~4°C的水 2011天原杯化学复赛 风雨()()成语1、3是数字快 试证明:有一长度s被分成n个相等的部分,若质点一加速度a由这一长度的始端出发,质点通过每一部分的末端时加速度增加a/n,那么它经过后的速度是sqr(3as-as/n) 取一定量的NaHCO3和NH4HCO3分别加热到300℃,使之完全分解,在同温(T≥100℃)同压下体积比为1:6.取一定量的NaHCO3和NH4HCO3分别加热到300℃,使之完全分解,在同温(T≥100℃)同压下体积比为1:6,求NaHCO3和NH 江西省2014届九年级第三次大联考数学英语答案, 考研英语长难句分析,Its beginning obscured by unemployment caused by the world economic slow-downIts beginning obscured by unemployment caused by the world economic slow-down,the new technological unemployment may emerge as the great socio-ec 1500幅遭纳粹掠夺画作被发现 价值哥伦比亚一辆巴士坠崖致13死61伤刘结一说中国将积极履行安理会轮值主席2013浙江·杭州国际人才交流与合作周日较强冷空气到来 杭州将进入深秋(杭州正研究建设城市风道 从钱塘江引风习近平鼓励企业加强研发“神医”胡万林牢狱生活曝光 监狱未让习近平“现身”中南大学 大学生欢呼雀美元对主要货币汇率4日下跌纽约股市三大股指4日小幅上涨美财政部预计未来半年发债5310亿美金正恩凭吊勇士之墓北约核演习曾险些引发核战朴槿惠对朝探出橄榄枝?澳百余家网站因“窃听”遭“黑”白宫、两院拒赦斯诺登纽约股市4日波动后小幅上涨部分高校将学位证挂钩英语四级 教育部中印时隔5年再次联合军演 更多表达政丘吉尔曾担心法国对英宣战众筹善款为新广州人庆中秋“走近”非洲 日本上演“援助秀”为国争光,振奋民族自信心妈妈再也不怕我坐地铁迷路了越秀万名小学新生行开笔礼10个服务点免费收洗老人衣物小记者秋季班开始报名啦疑争抢客源参展商起冲突狮王对决广州独占“鳌头”9月前三天299元即可从广州直飞西安雪松控股入围中国民营企业百强2020年建成首个国家森林城市群力争成为广东省供给侧结构性改革的排头乱停车罚5000元的做法更乱媒体视角睇餸食饭市民亲手打造喜爱的公园今起可买市汽车站中秋节车票3天售车千辆 达成意向六千份今年国庆国内游价格与去年持平市台资企业协会第十二届新任会长就职
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘