VB6 数据库 基础 教程
的有关信息介绍如下:生活中有着许许多多的烦恼,下面就由小编教你VB6数据库基础教程,希望你的生活多姿多彩~
访问数据库,对于VB6来说,最好的就是ADO。用ODBC连接oralc我们把对数据库的操作封装在一个cDataBase类中,他主要有以下接口。
1、ConnectionString属性,MakeConnectionString方法。一个是直接给出连接字符串,一个是动态生成连接字符串。至于动态生成,我可以调用ADODB控件那个属性的对话框,来实现。
2、SQLCommand属性这个是SQL命令的,直接给一个SQL命令字符串,至于格式,我们后面详细讲。
3、Parameters属性这是一个数组参数,对应于SQL命令里的参数。(PS:最好是二维的)综合上面的2和3二点,讲一下。SQL命令的写法:如果仅仅诸如select * from Table,这个没什么好讲的。我们实际开发中,会用到许多动态的参数值,尤其是插入新记录的时候。很多同行喜欢有拼接的方式,比如:insert into student(id,name,password) values(1,'test','123456')这种写法,在实际工作中,会产生一句相当难看懂的代码,因为后面的值,全是一些变量或控件的值。这里推荐这种写法:insert into student(id,name,password) values(?,?,?)把这个字符串给我们的SQLCommand,再定义一个二维数组,dim p(2) as stringp(0)="1"p(1)="test"p(2)="123456"这里读者要说了,你这全是字符型啊,我ID是数字啊。补充说明一下,数字,字符,日期,都可以定义成string。这三种类型,是所有的数据库都支持的。我上面PS了一下,说是定义二维的,那就是说,把参数的类型也加到数组里去,这样就比较完善了。
4、下面就是二个执行SQL语句的方法,为什么是二个呢?因为VB6不支持多态。ExecuteSQLr方法,此方法返回一个记录集,比如:select语法。ExecuteSQLn方法,此方法返回一个影响的行数,比如:insert语法,delete语法。这二个方法,先要判断一下前面的属性有没有赋值。接着,我们用ADO的Command对象来操作。'返回受影响的记录数,Update/Delete/InsertPublic Function ExecuteSQLn() As LongOn Error GoTo errTrapDim MyCon As New Connection '连接对象Dim MyCMD As New Command 'cmd对象MyCon.ConnectionString = DataBaseConnectionString '连接字符串MyCon.CursorLocation = adUseClient '游标MyCon.Open '打开连接MyCMD.ActiveConnection = MyCon 'CMD对象的当前连接MyCMD.CommandType = adCmdText 'CMD对象的命令类型MyCMD.CommandText = SQLString 'CMD对象的具体命令MyCMD.CommandTimeout = 15 'CMD对象的超时时间If Len(XMLParameters) = 0 Then '判断是否有参数(我这里的参数不是数组,是XML字符串)'无参数ElseDim p() As String, i As LongIf MyXML.XMLString2StringArray(XMLParameters, p) Then 'XML字符串转换为数组For i = LBound(p) To UBound(p)MyCMD.Parameters(i) = p(i) '给SQL命令中的?赋值,NextEnd IfEnd IfDim N As LongMyCMD.Execute N '执行ExecuteSQLn = N '返回影响的行数errExit:Set MyCMD = Nothing '释放MyCon.Close '关闭连接Set MyCon = Nothing '释放XMLParameters = "" '清空参数SQLString = "" '清空命令Exit FunctionerrTrap:ExecuteSQLn = 0'写错误日志WriteLog "文件:cADO" & vbCrLf & _"过程:ExceuteSQLn()" & vbCrLf & _"错误号:" & Err.Number & vbCrLf & _"错误描述:" & Err.DescriptionErr.ClearResume errExitEnd Function