VB与大型数据库无数据源的连接cnna.ConnectionString=“PROVIDER=MSDASQL;” “DRIVER={MicrosoftVisualFoxproDriver};” “SourceDB=D:\data\;” “SourceType=DBF” 2.SQLServer [PROVIDER=MSDASQL;] DRIVER={DriverName}; SERVER=server; DATABASE=database; UID=user; PWD=password 例如: cnnb.ConnectionString=“PROVIDER= MSDASQL;” “DRIVER={SQLServer};” “SERVER=servera;” “DATABASE=pubs;” “UID=sa;” “PWD=yyuui” 3.Sybase数据库 [PROVIDER=MSDASQL;] DRIVER={DriverName}; SRVR=server;’必须是SRVR,不能是SERVER DB=database;’可以是DB,也可以是DATABASE DSN=;’可以省略 UID=user; PWD=passwod; PERSISTSECURITYINFO=False 例如: cnnc.ConnectionString= “PROVIDER=MSDASQL;” “DRIVER={SybaseSystem11};” “SRVR=serveru;” “DSN=;” “DB=dataa;” “UID=sa;” “PWD=dqwe;” “PERSISTSECURITYINFO=False” 4.Oracle数据库 [PROVIDER=MSDASQL;] DRIVER={DriverName}; SERVER=server; databasename=database; databasefile=path; DSN=; UID=user; PWD=password; 例如: cnnd.ConnectionString= “PROVIDER=MSDASQL;” “DRIVER={MicrosoftODBCforOracle};” “SERVER=Webserver;” “DSN=;” “databasename=dataall;” “databasefile=d:\data\;” “UID=dba;” “PWD=killer” 应用实例 下面以Sybase11.9.2为例,编制一个简单的工作人员管理程序,介绍ADO的具体实现方法和步骤。数据库名称为Workerdb,只包括一个表(Worker),其结构如下: 字段名称 宽度 注释 codenchar(4)代号 namechar(8)姓名 ……………… 首先安装ADO,在VB的“工程”/“引用”对话框中选择“ActiveXDataObject2.5Library”(ADODB)。其中“ADORecordset2.5Library”是一个客户端的版本(ADOR),因为不需要Connection对象来建立与远程数据源的联系,所以ADOR对于客户端的数据访问来说已经足够了。下面是部分主要代码: 1.处理代码 ’在工程菜单中引用MicrosoftActiveXDataObject2.5Library ’声明ADO连接对象为工程级全局变量 PubliccndbaseAsNewADODB.Connection …… ’自定义连接数据库函数 PublicFunctionConnectDbase(StrConnectAsString)AsBoolean OnErrorGoToErrHandle cndbase.ConnectionString=StrConnect cndbase.Open cndbase.CursorLocation=adUseClient ConnectDbase=True ExitFunction ErrHandle: ConnectDbase=False EndFunction PrivateSubForm_Load() …… 输入VarServer’服务名称 VarDbase’数据库名称 VarUser’用户名称 VarPassword’用户口令 …… ’连接数据库,采取无DSN连接方法 StrConnect=“Provider=MSDASQL;” “Driver={”&VarDriver&“};” “SRVR=”&VarServer&“;” “DB=”&VarDbase&“;” “DSN=;” “UID=”&VarUser&“;” “PWD=”&VarPassword&“;” “PersistSecurityInfo=False”’不采用集成安全机制 ifConnectDbase(StrConnect)Then ExitSub else myexit=MsgBox(“数据库连接失败!请检查连接设置信息。”,vbOKOnly,“错误提示:”) Unloadme endif ErrHand: myexit=MsgBox(“错误程序:”&Err.Source&Chr(10)&“错误代码:”&Err.Number&Chr(10)&“错误信息:”&Err.Description,VbAbortRetryIgnore,“错误提示:”) Ifmyexit=3Then Err.Clear UnloadMe Else Ifmyexit=4Then Err.Clear Resume Else Err.Clear ResumeNext EndIf EndIf EndSub PrivateSubForm_Unload() …… cndbase.Close Setcndbase=Nothing EndSub 2.建表 codbase.CommandText=“{callCREATABLE(?)}” codbase.CommandType=adCmdText codbase.Name=“CREATABLE” ’设定OutPut的参数 Setparam=codbase.CreateParameter(“flag”,adInteger,adParamOutput) codbase.Parameters.Appendparam Setcodbase.ActiveConnection=cndbase codbase.Execute Ifcodbase.Parameters(0)=0Then myexit=MsgBox(“建表成功!”,vbOKOnly,“程序提示:”) Else myexit=MsgBox(“建表失败!”,vbOKOnly,“错误提示:”) Endif …… 3.修改 rsdbase.Open“worker”,cndbase,adOpenDynamic,adLockPessimistic,adCmdTable rsdbase.MoveFirst cndbase.BeginTrans ’在记录集中进行循环更改 DoUntilrsdbase.EOF ’增加20元职务代码为1的人员的工资 Ifrsdbase!duty=1Then rsdbase!salary=rsdbase!salary 20 EndIf rsdbase.MoveNext Loop rsdbase.UpdateBatch …… 4.统计 StrSQL=“Selectavg(salary),sum(salary)fromworker” rsdbase.CursorLocation=adUseClient rsdbase.OpenStrSQL,cndbase salaryavg=rsdbase(0)’平均工资 salarysum=rsdbase(1)’工资总和 …… rsdbase.Close 5.存储过程creatable.sql CREATEPROCEDUREdbo.creatable(@return_valueintegeroutput) AS Begin CreatetableWorkerdb..Worker (codenchar(4)notnull, namechar(8)notnull, yearnchar(4), monthnchar(2), daynchar(2), salarynumeric(18,2), 上一篇:VB环境多媒体压缩数据流播放技术 下一篇:如何在VB中截获shell程序的输出 更多相关文章
|
推荐文章
精彩文章
|