资源描述:
《在LOTUS中利用ADO连结后端数据库》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在LOTUS中利用ADO连结后端数据库目前,绝大多数的数据库参考书都介绍了ODBC(OpenDataBaseConnectivity,开放式数据库连接)的手动设定方法,或者介绍了如何在程序代码中进行ODBC设定。但这两种方法都有一定的局限性:不是需要为每一位User设定ODBC数据来源,不然就是得编写复杂的更改操作系统机码文件的程序,显得既麻烦又不符合专业软件的要求。本期智颉分享报将利用ADO(ActiveXDataObjects)建立一无须设定数据源的大型数据库连接方法(以SQLServer为例)。后续之智颉分享报将持续介绍ADO各组件之参数与使用方法,敬请期待。本期之程序范例,先
2、让各位会员体验一下Notes跟ADO结合之用法与方便性,相关参数说明部份会在后续几期之智颉分享报中介绍。本范例为连结MicrosoftSQLServer7.0或MicrosoftSQLServer2000的NorthWind数据库,连接之Table为Suppliers数据表,建立方法如下:1.在数据库中建立一套表,套表名称为”testform”,字段如下(所有字段皆为文字型态):2.在套表中建立下列四个按钮,按钮程序分别为如下:[ADO==>SQLServer查询数据]SubClick(SourceAsButton)DimwsAsNewNotesUIWorkspaceDimuidoc
3、AsNotesUIDocumentDimConnAsVariantDimEmpRSAsVariantDimDBConStrAsStringDimSQLCmdAsStringDimNewUserAsVariantDimAllUsers()DimpAsInteger'ADOConstantsConstadStateOpen=1ConstadCmdText=1ConstadOpenStatic=3ConstadLockOptimistic=3Setuidoc=ws.CurrentDocumentOnErrorGotoErrorHandler'ConnectionString(UseDSN-
4、Lessconnectionstring)DBConStr="Provider=SQLOLEDB.1;PersistSecurityInfo=True"&_";DataSource=127.0.0.1;UserId=sa;Password=password;ConnectTimeout=10;"&_"InitialCatalog=Northwind;"'CreateandOpenConnectionObjectSetConn=CreateObject("ADODB.Connection")Conn.OpenDBConStr'SqlCommandSQLCmd="select*fromS
5、uppliers"'CreateandOpenEmployeeRecordsetObjectSetEmpRS=CreateObject("ADODB.Recordset")EmpRS.OpenSQLCmd,Conn,adOpenStatic,adLockOptimistic,adCmdText'ShowtheresultingdataEmpRS.MoveFirstp=0While(NotEmpRS.EOF)RedimPreserveAllUsers(p)AllUsers(p)=EmpRS.Fields("CompanyName").ValueEmpRS.MoveNextp=p+1We
6、ndSelectUser=ws.Prompt(PROMPT_OKCANCELLIST,"选择供货商","请选择欲查询之供货商名称:",AllUsers(0),AllUsers)IfTrim(SelectUser)=""ThenGotoProgEndEndIfNewUser=Evaluate(
7、@ReplaceSubString("
8、+Trim(SelectUser)+
9、";"'";"''")
10、)SQLCmd={select*fromSupplierswhereCompanyName='}+Trim(NewUser(0))+{'}EmpRS.CloseEmpRS.OpenSQLCmd,
11、Conn,adOpenStatic,adLockOptimistic,adCmdText'ShowtheresultingdataEmpRS.MoveFirstIfNot(EmpRS.EOF)Then'公司名称Calluidoc.FieldSetText("CompanyName",EmpRS("CompanyName").Value)'联络人姓名IfIsnull(EmpRS("ContactName").value)ThenCalluidoc.Field