明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1841|回复: 3

[求助]求ADO的示范代码

[复制链接]
发表于 2004-1-11 10:10:00 | 显示全部楼层 |阅读模式
我想学ADO编程,请高手给我写一段完整示范代码。通过ADO读取ACCESS和EXCEL,在CAD中画一直线和两个圆,直线的端点和圆的圆心是第一点和第二点。(请看附件)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2004-1-11 15:21:00 | 显示全部楼层
第一个为连接Access数据库的例子,第二个为连接Excel数据库的例子。

  1. Sub test1()

  2.     '创建对数据库的连接
  3.     Dim cn As ADODB.Connection
  4.     Set cn = New ADODB.Connection
  5.     cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\access.mdb"
  6.    
  7.     '通过语句创建数据集
  8.     Dim rs As ADODB.Recordset
  9.     Set rs = New ADODB.Recordset
  10.     rs.Open "select * from 表1", cn, adOpenKeyset, adLockOptimistic, adCmdText
  11.    
  12.     ' 移到首记录
  13.     rs.MoveFirst
  14.     Dim cPt(0 To 2) As Double
  15.     Do While Not rs.EOF
  16.         cPt(0) = rs.Fields("x")
  17.         cPt(1) = rs.Fields("y")
  18.         cPt(2) = 0
  19.         ' 创建圆
  20.         ThisDrawing.ModelSpace.AddCircle cPt, rs.Fields("r")
  21.         ' 移到下一条
  22.         rs.MoveNext
  23.     Loop
  24.    
  25.     ' 关闭、释放对象
  26.     rs.Close
  27.     Set rs = Nothing
  28.     cn.Close
  29.     Set cn = Nothing
  30. End Sub

  31. Sub test2()

  32.     '创建对数据库的连接,因为是连接Excel,故要指定扩展属性
  33.     ' HDR表示第一行是做为字段名称还是数据行
  34.     Dim cn As ADODB.Connection
  35.     Set cn = New ADODB.Connection
  36.     cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\excel.xls;Extended Properties=" & """" & "Excel 8.0;HDR=Yes;" & """"
  37.    
  38.     '通过表创建数据集
  39.     Dim rs As ADODB.Recordset
  40.     Set rs = New ADODB.Recordset
  41.     rs.Open "表1", cn, adOpenKeyset, adLockOptimistic, adCmdTable
  42.    
  43.     ' 移到首记录
  44.     rs.MoveFirst
  45.     Dim cPt(0 To 2) As Double
  46.     Do While Not rs.EOF
  47.         cPt(0) = rs.Fields("x")
  48.         cPt(1) = rs.Fields("y")
  49.         cPt(2) = 0
  50.         ' 创建圆
  51.         ThisDrawing.ModelSpace.AddCircle cPt, rs.Fields("r")
  52.         ' 移到下一条
  53.         rs.MoveNext
  54.     Loop
  55.    
  56.     ' 关闭、释放对象
  57.     rs.Close
  58.     Set rs = Nothing
  59.     cn.Close
  60.     Set cn = Nothing
  61. End Sub

注:关于Excel做为数据库使用时的表名设置,见下图。
这里并不是以工作表的名字做为表名,而是以单元格区域的名称。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2004-1-11 20:16:00 | 显示全部楼层
谢谢efan大师!成功了.
代码
  1. rs.Open "select * from 表1", [color=red]cn, adOpenKeyset, adLockOptimistic, adCmdText[/color]
复制代码
中红色的东东是什么意思啊?
如果把CAD的内容用ADO的方法写到ACCESS或EXCEL中,那代码又该怎么写啊?
发表于 2004-1-11 20:29:00 | 显示全部楼层
1、ActiveConnection参数,是数据集当前所属的Connection对象,也可以是一个连接字符串。
2、CursorType参数,游标类型。
3、LockType参数,锁定类型。
4、Options参数,指定Source的类型。
其中游标类型与锁定类型的值跟数据库本身的支持有关系。

  1. CursorType   可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型。可为下列常量之一(参阅 CursorType 属性可获得这些设置的定义)。

  2. 常量 说明
  3. AdOpenForwardOnly (默认值)打开仅向前类型游标。
  4. AdOpenKeyset 打开键集类型游标。
  5. AdOpenDynamic 打开动态类型游标。
  6. AdOpenStatic 打开静态类型游标。

  7. LockType   可选。确定提供者打开 Recordset 时应该使用的锁定(并发)类型的 LockTypeEnum 值,可为下列常量之一(参见 LockType 属性可获得详细信息)。

  8. 常量 说明
  9. AdLockReadOnly (默认值)只读 — 不能改变数据。
  10. AdLockPessimistic 保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。
  11. AdLockOptimistic 开放式锁定(逐个) — 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。
  12. AdLockBatchOptimistic 开放式批更新—用于批更新模式(与立即更新模式相对)。

  13. Options   可选,长整型值,用于指示提供者如何计算 Source 参数(如果它代表的不是 Command 对象),或从以前保存 Recordset 的文件中恢复 Recordset。可为下列常量之一(参见 CommandType 属性可获得该列表中前五个常量的详细说明)。

  14. 常量 说明
  15. adCmdText 指示提供者应该将 Source 作为命令的文本定义来计算。
  16. adCmdTable 指示 ADO 生成 SQL 查询以便从在 Source 中命名的表中返回所有行。
  17. adCmdTableDirect 指示提供者更改从在 Source 中命名的表中返回所有行。
  18. adCmdStoredProc 指示提供者应该将 Source 视为存储过程。
  19. adCmdUnknown 指示 Source 参数中的命令类型为未知。
  20. adCmdFile 指示应从在 Source 中命名的文件中恢复保留(保存的)Recordset。
  21. adAsyncExecute 指示应异步执行 Source。
  22. adAsyncFetch 指示在提取 Initial Fetch Size 属性中指定的初始数量后,应该异步提取所有剩余的行。如果所需的行尚未提取,主要的线程将被堵塞直到行重新可用。
  23. adAsyncFetchNonBlocking 指示主要线程在提取期间从未堵塞。如果所请求的行尚未提取,当前行自动移到文件末尾。
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 09:30 , Processed in 0.249673 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表