
VB426Word试题库工具插件的设计.doc
21页VB426Word试题库工具插件的设计
2.5.2如何在VB中使用ADO
一旦安装了ADO,在VB的工程->引用对话框中就可以看到象下图所示的东西了:选择 "ActiveX Data Objects 1.5 Library" (ADODB).在其下的 "ADO Recordset 1.5 Library"是一个客户端的版本(ADOR),它定义了有聚的数据访问对象ADOR 对于客户端的数据访问来说是足够的了,因为不需要Connection对象来建立与远程数据源的联系
如果想要访问更多的外部数据源,需要安装这些外部数据源自己的OLE DB Provider,就象需要为新的数据库系统安装新的ODBC驱动程序一样如果该外部数据源没有自己的OLE DB Provider,就得使用OLE DB SDK来自己为这个外部数据源创建一个OLE DB Provider了
示例
下面的示例代码以Northwinds数据库作为远程数据源,然后用ADO来访问它首先在控制面板中打开“32位数据源”,单击“添加”按钮在弹出的对话框中选择 "Microsoft Access Driver (*.mdb)" 作为数据源驱动程序。
然后按下图所示,在对话框中填写下面的内容
选择数据库Northwinds所在路径单击完成,退出ODBC设备管理器
启动一个新的VB工程,在窗体的Load事件中输入下面的代码:
Private Sub Form_Load()
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
'Set Connection properties
cn.ConnectionString = "DSN=RDC Nwind;UID=;PWD=;"
cn.ConnectionTimeout = 30
cn.Open
If cn.State = adStateOpen Then _
MsgBox "Connection to NorthWind Successful!"
cn.Close
End Sub
按F5运行程序,看看,一个消息框弹出来告诉连接成功了请注意,这里我特别注明了是ADODB.Connection,而不是ADOR.Connection,这样做是为了将二者区分开(如果引用了ADODB和ADOR的话,这样做很有必要)。
连接字符串看上去同RDO的连接字符串差不多事实上,二者确实差不多如果我们要访问一个SQL server数据库,的Connection代码看上去应象下面所示:'设置连接属性cn.Provider = "MSDASQL"cn.ConnectionString = "driver={SQL Server};" & "server=prod1;uid=bg;pwd=;database=main"cn.Open"Provider"属性指向SQL Server的OLE DB Provider.回到我们的示例程序,让我们创建一个Recordset对象来访问“Orders”表,并从该表的"ShipCountry"字段中产生头十个不重复的国家名修改窗体Load事件中的代码,让它看上去象下面这样
Private Sub Form_Load()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sSQL As String
Dim sOut As String
Dim Count As Integer
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
' Set properties of the Connection.
cn.ConnectionString = "DSN=RDC Nwind;UID=;PWD=;"
cn.ConnectionTimeout = 30
cn.Open
If cn.State = adStateOpen Then _
MsgBox "Connection to NorthWind Successful!"
sSQL = "SELECT DISTINCT Orders.ShipCountry FROM Orders"
Set rs = cn.Execute(sSQL)
'Enumerate the recordset
sOut = ""
For Count = 1 To 10
sOut = sOut & rs("ShipCountry") & vbCrLf
rs.MoveNext
Next Count
MsgBox sOut, vbExclamation, "ADO Results"
End Sub
运行程序后,会看到如下图所示的消息框。
不幸的是,目前这个Recrodset对象是只读的和forward cursor如果想要获取更多的功能,需要创建一个独立的Recordset对象,该对象拥有自己的Connection属性,就象下面的代码所示:
Private Sub Form_Load()
Dim rs As ADODB.Recordset
Dim sSQL As String
Dim sOut As String
Dim Count As Integer
Set rs = New ADODB.Recordset
sSQL = "SELECT DISTINCT Orders.ShipCountry FROM Orders"
rs.Open sSQL, "DSN=RDC Nwind;UID=;PWD=;", adOpenDynamic
'Report Recordset Connection information
MsgBox rs.ActiveConnection, , "Connection Info"
'Enumerate the recordset
sOut = ""
For Count = 1 To 10
sOut = sOut & rs("ShipCountry") & vbCrLf
rs.MoveNext
Next Count
MsgBox sOut, vbExclamation, "ADO Results"
rs.Close
End Sub
上面代码返回的结果同前例一样,但是本代码中的Recordset是独立的。
这一点是DAO和RDO做不到的Recordset对象的Open方法打开一个代表从SQL查询返回的记录的游标虽然可以用Connection对象同远程数据源建立连接,但请记住,在这种情况下,Connection对象和Recordset对象是平行的关系
2.5.3 ADO技术主要应用举例
ADO(ActiveX Data Objects)是基于组件的数据库编程接口,它是一个和编程语言无关的COM组件系统本文主要介绍用ADO编程所需要注意的技巧和在VC下进行ADO 编程的模式,并对C++Extensions进行了简单的讨论,希望对ADO开发人员有一定的帮助作用因为ADO是一个和编程语言无关的COM组件系统,所以这里讨论的要点适用于所有的编程语言和编程环境,比如:VB、VBScript、VC、Java等等编程技巧
1.显式定义对象类型
实际上,这条准则不仅适用于ADO编程,也适用于其他的与COM对象相关的编程因为如果一开始就定义变量类型,则编译器在编译的时候就可以知道变量的类型,此时编译器实际上是采用vtable偏移的方式来得到具体的COM对象包含的方法的地址(这一点和 C++中虚函数的地址获取方式类似);但如果一开始不指定变量类型的话,比如简单地采用如下的语句:
DIM myCon as Object
或者是:
DIM myCon
这样,编译器在编译的时候就不能得到变量的类型,而只能在运行的时候动态地得到方法的信息(通过使用接口IDispatch的Invoke方法来实现),如此为了得到方法的地址和相关的变量情况就需要在内部进行两次调用,无疑会降低程序的运行速度。
2.绑定列到具体的字段对象
在程序开始时就建立对字段对象的引用,可以避免在每次得到记录后,再在Recordset::Fields中进行查找而增加系统的开销
例如,可以采用如下所示的代码:
Private Sub TblBrowse_Click()
Word试题库工具插件的设计
摘 要
编写试题、排版试卷一直以来都是一项繁重的工作手工录入试题然后排版试卷工作量大且容易出错,试题的收集保存也是以文件的形式,这使得查找试题变得相当困难改用数据库存储试题将使试题的存储和查找得到优化,这是大部分试题库软件的优势,但是这些试题库软件都使用软件自身的文本编辑器,功能十分有限,在数据的存储方面也只能存储纯文本的试题,不能存储图片、表格等这使得用户在编辑试题时十分不便,在数据的存储方面也有很大限制如果结合数据库的存储功能、结构化查询语言的查询功能和Word的文本编辑功能,利用Word进行试题编写、试卷排版,利用数据库存储试题,利用结构化查询语言查找试题、过滤显示同类试题,那么编写试题、排版试卷等工作将变得方便快捷为了实现Word与数据库之间的试题存取(能够支持图片、表格、公式的存取)以及其他一些功能编写的Word试题库工具插件以COM组件的形式嵌入Word程序中,通过它将Word与试题数据库有效的结合到一起,使用户既能够方便的编辑试题又能够将试题存入数据库或从数据库中取出,还能够通过结构化查询语句搜索试题。
关键词:COM组件;Word 插件;二进制字段;结构化查询语言
关键词
本文来自:计算机毕业网 :项目化;训练模式;毕业设计;软件开发
1“项目化”训练模式
浙江万里学院自2005年9月开始,在计算机专业部分实践课程教学中实施了“项目化”教学训练模式,比如“Internet应用”、“软件工程”、“专业实验”、“课程设计”等课程,学生们普遍表现出对于这种教学训练方式的欢迎,较好地提高了学习兴趣,给学生带来了良好的就业效应
“项目化”训练模式是指在计算机专业实践性课程教学中,实践内容按照不同的规格形式设计成不同的演练项目,将参与的学生按课题组(项目团队)进行分组,组内学生分配不同任务,通过参与不同项目角色的演练,完成不同规格的要求,最终达到教学目标的一种个性化训练模式。
项目,即与计算机专业相关的工程项目,可以是有一定综合性的课程实验项目,设计性的模拟项目,也可以是实际软件工程项目或其子项目等实践性课程包含计算机专业实践教学体系之内的实验课程、课程设计、集中实践与实习,以及校外实习、毕业设计等,还包括素质拓展训练项目该训练模式研究的目的是在1~4年级中,按照训练体系的安排,对学生实。
