现在我们大多都是用windows10系统,我在win10系统下写个程序来访问window2000下的SqlServer6.5根本访问不进去,在调查后,我在电脑上安装一个windows7的虚拟机,前提要保证电脑性能够好。在虚拟中我通过代码访问SqlServer6.5数据库就可以,下面我说一下我访问的成功经验:
第一,在虚拟机中安装visual studio 2017,一定配置ODBC,这个很关键否则在之后程序中不可以远程连接数据库,在配置ODBC之前,关闭两端防火墙,一定确保虚拟机和windows2000之间能相互访问(ping通)。
ODBC配置:https://jingyan.baidu.com/article/c1a3101e579cbede656deb17.html
第二,就开始写程序访问SqlServer6.5,这种数据库版本非常低,与现在的SqlServer2016存在很大部分出处,在SqlServer2016我们可以用ADO远程数据库,在这种低版本中不可以使用。所以在这我介绍两种访问方式,一种是RDO(提前在电脑中注册RDO);另一种是oledb,在程序中引进就可以访问(Imports System.Data.OleDb),访问方式与ADO类似。
oledb访问:
Dim OldSql As String
Dim OSqlConn As OleDbConnection
Dim OSqlCommand As OleDbCommand
Dim OSqlData As OleDbDataAdapter
Dim OsqlTran As OleDbTransaction
Dim OldSql As String = "Provider=SQLOLEDB;Persist Security Info=False;server=服务器地址;database=数据库名称;user id=数据库用户名;password=密码")
OSqlConn = New OleDbConnection(OldSql)
OSqlConn.Open()
Dim strSql As String = "select *from tablename"
OSqlCommand = New OleDbCommand(str, OSqlConn)
OSqlData = New OleDbDataAdapter(OSqlCommand)
Dim dbdt As New DataTable
SqlData.Fill(dbdt)
RDO访问:
Dim env As rdoEnvironment
Dim OldSqlConn As rdoConnection
Dim RDOrdoEngine_definst As New rdoEngine
Dim OldSql As String
Dim rdoRS As rdoResultset
env = RDOrdoEngine_definst.rdoEnvironments(0)
'DSN为你所配置ODBC的名称
OldSql = String.Format("DSN=master;Server={0};DATABASE={1};UID={2};PWD ={3}", OldServerTextBox.Text, InitialCatalog, OldUserTextBox.Text, OldPassTextBox.Text)
Try
env.CursorDriver = CursorDriverConstants.rdUseOdbc
OldSqlConn = env.OpenConnection(dsName:="", Prompt:=PromptConstants.rdDriverNoPrompt, Connect:=OldSql)
rdoRS = OldSqlConn.OpenResultset(str, ResultsetTypeConstants.rdOpenKeyset,
LockTypeConstants.rdConcurRowVer, OptionConstants.rdExecDirect) '查询生成Resultset集合