通过ADODB连接数据库之后,有没有办法在程序里获得数据库的信息???
比如数据库类型。能不能通过程序返回连接的数据库类型??是Access还是SQL Server或者DB2、oracle???
还有连接方式,是通过ODBC,还是OLE直连??或者其他方式?其他数据库信息能不能获得??
比如数据库类型。能不能通过程序返回连接的数据库类型??是Access还是SQL Server或者DB2、oracle???
还有连接方式,是通过ODBC,还是OLE直连??或者其他方式?其他数据库信息能不能获得??
解决方案 »
- 如何快速对比两幅图片?
- 水晶报表问题--为零的字段不显示出来
- 哪位朋友能给个中文版的vb的msdn的下载地址,自己没找着:)
- 怎样快速删除记录
- 求救!SOS
- 求教一下关于数据报表的问题!(实在不好意思,将问题给发到了数据库及基础版了,致使可用分只剩35了!不过大家也可以去这两个版块跟贴解
- 我用VB写了一个*.cab控件,然后,把它放到IE里运行,IE当然能正常下载的;可是,拿到另外的机器上,为什么IE里下载*。CAB控件?怎么办?
- 如何改变屏幕的分辨率?
- 如何让vb编译后的 exe 程序在系统中同一时间只有一个列程。
- ado数据库程序运行要什么库?(问题简单,抢分啦!)
- 请问一下,下面的话中用户指什么?是指不同的客户机还是指数据库中不同的用户。???
- 关于句柄的终极问题,非高手不能解也!
---------------------------------------------------
这些东西不知道,怎么连接?还有连接方式,是通过ODBC,还是OLE直连??或者其他方式?
---------------------------------------------------------
这是你自己设的啊。
对呀,不知道数据库类型怎么通过ADODB连接数据库?
工程-〉引用-〉Microsoft OLE DB Service Component 1.0 Library
工程-〉引用-〉Microsoft ActiveX Data Objects 2.7 Library通过以下代码弹出数据库连接属性对话框,用户可以在对话框中自由选择要连接的数据库及连接方式。Dim objCreateDB As MSDASC.DataLinks
Dim cnnCreateDB As New ADODB.ConnectionSet objCreateDB = New MSDASC.DataLinks
Set cnnCreateDB = New ADODB.Connection
objCreateDB.hWnd = frmConnectDB.hWnd
cnnCreateDB.open (objCreateDB.PromptNew)
txtString.Text = cnnCreateDB.ConnectionString
cnnCreateDB.Close用户设置好之后,将连接字符串返回到文本框txtString中。这样,用户使用时会连接什么数据库?是通过ODBC连接还是直连??这些我在编程阶段是无法预先知道的,我能得到的只有连接字符串。但是我在后边的程序里需要判断用户连接的是哪种数据库?通过哪种方式连接的?然后根据不同的 数据库作相应的处理。
程序里只能返回结果,无法预知。但是我在后边的程序里需要根据不同的 数据库作相应的处理。
现在我想知道的是如何根据返回结果(ConnectionString)获知连接的数据库类型??
Dim str As String
str = "provider=sqloledb.1;data source=.;initial catalog=lianxi;user id=sa;password=sa"
'这是SQL的连接方式
Con.Open str
frmLogin.Show
End Sub希望对你有帮助:)
设置这个属性的值,SQL就是这么写
如果连接别的数据库就不一样了:)
1。同一个数据库的不同版本是不是一致的??能不能屏蔽掉版本的差异??
2。如果是通过ODBC数据源连接,provider部分一直都是"Provider=MSDASQL",这时如何区分不同的数据库??
//不能,最多检查access是97还是2K
2。如果是通过ODBC数据源连接,provider部分一直都是"Provider=MSDASQL",这时如何区分不同的数据库??
//这个偶没考虑过,偶只考虑ado的连接方式但是怎么感觉还有个地方不对啊...
用户不知道数据库,怎么连接的?
要么楼主去http://www.connectionstrings.com/分析下每种数据库的连接不同?
//这个偶没考虑过,偶只考虑ado的连接方式
-----------------------------------------------------
ado也可以通过ODBC数据源来连接数据库,不考虑不行啊。
--------------------------------------------------------------------------
头大了!!
去看了一下,通过ODBC方式连接的ConnectionString的数据库驱动Drive项居然不是必须的。也就是说ConnectionString里可能根本没有区分不同数据库的字符。
-------------------------------------
不同的数据库他们的txtString应该有区别,根据这些区别来判断即可。
如果判断不了,把你不能判断的数据库说出来。
还有,客户的数据库应该只考虑主流的几种,好像是应该需求分析时确认好。
不清楚你做的东西。把你的问题细化一下再问效果更好。
不清楚你做的东西。把你的问题细化一下再问效果更好。
-------------------------------------------------------------------
只要支持SQL Server \Oracle\DB2\Access\Sybase这几种就基本满足要求了,其他可以暂时不考虑。
还有个InforMix,能支持最好,不能支持也没关系。
如果判断不了,把你不能判断的数据库说出来。
----------------------------------------------------------------------
我现在就知道通过ODBC连接Access时,ConnectionString里会有"dbq=c:\test.mdb"(.mdb文件路径)这个字符串。
其他数据库我看着都差不多。
不清楚你做的东西。把你的问题细化一下再问效果更好。
-------------------------------------------------------------------
只要支持SQL Server \Oracle\DB2\Access\Sybase这几种就基本满足要求了,其他可以暂时不考虑。
还有个InforMix,能支持最好,不能支持也没关系。
刚才还漏了个MySQL,也是能支持最好,不能支持也没关系。
-------------------------------------------------
oledb方式已经解决了,可以区分出不同的数据库了。
现在是ODBC方式,除了Access之外,都区分不出来.
"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" 下对应系统DSN
"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC File Sources" 下对应文件DSN