资源描述:
《vb中访问存储过程的几种办法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、VB中访问存储过程的几种办法使用SQL存储过程有什么好处■SQL存储过程执行起来比SQL命令文本快得多。当一个SQL语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它。■调用存储过程,可以认为是一个三层结构。这使你的程序易于维护。如果程序需要做某些改动,你只要改动存储过程即可■你可以在存储过程中利用Transact-SQL的强大功能。一个SQL存储过程可以包含多个SQL语句。你可以使用变量和条件。这意味着你可以用存储过程建立非常复杂的查询,以非常复杂的方式更新数据库。■最后,这也许是最重要的,在存储过程中可以使用参数。你可以传送和返回参数。你还可以得到一个返回值(从
2、SQLRETURN语句)。环境:WinXP+VB6+sp6+SqlServer2000数据库:test表:UsersCREATETABLE[dbo].[users]([id][int]IDENTITY(1,1)NOTNULL,[truename][char](10)COLLATEChinese_PRC_CI_ASNULL,[regname][char](10)COLLATEChinese_PRC_CI_ASNULL,[pwd][char](10)COLLATEChinese_PRC_CI_ASNULL,[sex][char](10)COLLATEChinese_PRC_CI_A
3、SNULL,[email][text]COLLATEChinese_PRC_CI_ASNULL,[jifen][decimal](18,2)NULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]GOALTERTABLE[dbo].[users]WITHNOCHECKADDCONSTRAINT[PK_users]PRIMARYKEYCLUSTERED([id])ON[PRIMARY]GO存储过程select_usersCREATEPROCEDUREselect_users@regnamechar(20),@numrowsintOUTPUTASSelect*fr
4、omusersSELECT@numrows=@@ROWCOUNTif@numrows=0return0elsereturn1GO存储过程insert_usersCREATEPROCEDUREinsert_users@truenamechar(20),@regnamechar(20),@pwdchar(20),@sexchar(20),@emailchar(20),@jifendecimal(19,2)ASinsertintousers(truename,regname,pwd,sex,email,jifen)values(@truename,@regname,@pwd,@sex
5、,@email,@jifen)GO在VB环境中,添加DataGrid控件,4个按钮,6个文本框代码简单易懂。‘引用microsoftactivedataobject2.XlibraryOptionExplicitDimmConnAsADODB.ConnectionDimrs1AsADODB.RecordsetDimrs2AsADODB.RecordsetDimrs3AsADODB.RecordsetDimrs4AsADODB.RecordsetDimcmdAsADODB.CommandDimparamAsADODB.Parameter'这里用第一种方法使用存储过程添加数据Pri
6、vateSubCommand1_Click()Setcmd=NewADODB.CommandSetrs1=NewADODB.Recordsetcmd.ActiveConnection=mConncmd.CommandText="insert_users"cmd.CommandType=adCmdStoredProcSetparam=cmd.CreateParameter("truename",adChar,adParamInput,20,Trim(txttruename.Text))cmd.Parameters.AppendparamSetparam=cmd.CreatePar
7、ameter("regname",adChar,adParamInput,20,Trim(txtregname.Text))cmd.Parameters.AppendparamSetparam=cmd.CreateParameter("pwd",adChar,adParamInput,20,Trim(txtpwd.Text))cmd.Parameters.AppendparamSetparam=cmd.CreateParameter("sex",adChar,adParamInput,20,