生活中有着许许多多的烦恼,下面就由小编教你VB6数据库基础教程,希望你的生活多姿多彩~
工具/原料
手机
电脑
方法/步骤
1、访问数据库,对于VB6来说,最好的就是ADO。用ODBC连接oralc我们把对数据库的操作封装在一个cDataBase类中,他主要有以下接口。
2、ConnectionString属性,MakeConnectionString方法。一个是直接给出连接字符串,一个是动态生成连接字符串。至于动态生成,我可以调用ADODB控件那个属性的对话框,来实现。
3、SQLCommand属性这个是SQL命令的,直接给一个SQL命令字符串,至于格式,我们后面详细讲。
4、Parameters属性这是一个数组参数,对应于SQL命令里的参数。(PS:最好是二维的)综合上面的2和3二点,讲一下。SQL命令的写法:如果仅仅诸如select*fromTable,这个没什么好讲的。我们实际开发中,会用到许多动态的参数值,尤其是插入新记录的时候。很多同行喜欢有拼接的方式,比如:insertintostudent(id,name,password)values(1,'test','123456')这种写法,在实际工作中,会产生一句相当难看懂的代码,因为后面的值,全是一些变量或控件的值。这里推荐这种写法:insertintostudent(id,name,password)values(?,?,?)把这个字符串给我们的SQLCommand,再定义一个二维数组,dimp(2)asstringp(0)="1"p(1)="test"p(2)="123456"这里读者要说了,你这全是字符型啊,我ID是数字啊。补充说明一下,数字,字符,日期,都可以定义成string。这三种类型,是所有的数据库都支持的。我上面PS了一下,说是定义二维的,那就是说,把参数的类型也加到数组里去,这样就比较完善了。
5、下面就是二个执行SQL语句的方法,为什么是二个呢?因为VB6不支持多态。ExecuteSQLr方法,此方法返回一个记录集,比如:select语法。ExecuteSQLn方法,此方法返回一个影响的行数,比如:insert语法,delete语法。这二个方法,先要判断一下前面的属性有没有赋值。接着,我们用ADO的Command对象来操作。'返回受影响的记录数,Update/Delete/InsertPublicFunctionExecuteSQLn()AsLongOnErrorGoToerrTrapDimMyConAsNewConnection'连接对象DimMyCMDAsNewCommand'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对象的超时时间IfLen(XMLParameters)=0Then'判断是否有参数(我这里的参数不是数组,是XML字符串)'无参数ElseDimp()AsString,iAsLongIfMyXML.XMLString2StringArray(XMLParameters,p)Then'XML字符串转换为数组Fori=LBound(p)ToUBound(p)MyCMD.Parameters(i)=p(i)'给SQL命令中的?赋值,NextEndIfEndIfDimNAsLongMyCMD.ExecuteN'执行ExecuteSQLn=N'返回影响的行数errExit:SetMyCMD=Nothing'释放MyCon.Close'关闭连接SetMyCon=Nothing'释放XMLParameters=""'清空参数SQLString=""'清空命令ExitFunctionerrTrap:ExecuteSQLn=0'写错误日志WriteLog"文件:cADO"&vbCrLf&_"过程:ExceuteSQLn()"&vbCrLf&_"错误号:"&Err.Number&vbCrLf&_"错误描述:"&Err.DescriptionErr.ClearResumeerrExitEndFunction