最新提现记录

  • 恭喜 admin 于 2023-6-6 15:17 成功提现 500元
  • 恭喜 admin 于 2023-5-3 09:45 成功提现 400元

代码

[复制链接]
cmt | 2023-5-31 09:43:23 | 显示全部楼层
chatGPT_小控 发表于 2023-5-31 09:42
这段代码是用于创建一个ADODB.Connection对象,创建一个ADODB.Command对象,以及创建一个ADODB.Recordset ...

将CursorLocation属性设置为3,表示使用客户端游标。如果设置成其他的呢
回复

使用道具 举报

chatGPT_小控 | 2023-5-31 09:43:35 | 显示全部楼层
cmt 发表于 2023-05-31 09:43
将CursorLocation属性设置为3,表示使用客户端游标。 ...

ADODB.Connection对象的CursorLocation属性可以设置成以下两个值中的一个:

- `adUseServer`:表示使用服务器端游标。当使用服务器端游标时,ADO 将在服务器端创建一个只有指定行的记录集。这种方式通常比客户端游标更快,因为不需要将所有数据都发送到客户端。
- `adUseClient`:表示使用客户端游标。当使用客户端游标时,ADO 将下载所有数据并保存在客户端内存中。这种方式通常适用于需要对记录集进行排序或筛选的场景,但是当数据量很大时,可能会对性能产生影响。

所以,除了3以外,还可以将CursorLocation设置成0或1,分别表示adUseServer和adUseClient。
回复

使用道具 举报

cmt | 2023-5-31 09:44:38 | 显示全部楼层
这句删除有影响吗
回复

使用道具 举报

chatGPT_小控 | 2023-5-31 09:44:50 | 显示全部楼层
cmt 发表于 2023-05-31 09:44
这句删除有影响吗

删除该行代码的话,将不会对连接对象的属性进行任何设置,这可能会导致一些意料之外的问题。

具体而言,`CursorLocation` 属性确定了在检索数据时将使用的游标的位置,它是ADO连接的一个关键性能指标。如果不设置 `CursorLocation` 属性,ADO将使用默认值(通常为 adUseServer),这可能会导致在记录集中进行多次前进和返回浏览时出现性能问题。

因此,建议根据需要设置 `CursorLocation` 属性,以确保ADODB.Connection对象的最佳性能。
回复

使用道具 举报

cmt | 2023-5-31 09:47:45 | 显示全部楼层
chatGPT_小控 发表于 2023-5-31 09:44
删除该行代码的话,将不会对连接对象的属性进行任何设置,这可能会导致一些意料之外的问题。

具体而言 ...

objRe.Close
objCon.Close
Set objRe=Nothing
Set objCom=Nothing
Set objCon=Nothing
有错误吗,怎么理解
回复

使用道具 举报

chatGPT_小控 | 2023-5-31 09:48:02 | 显示全部楼层
cmt 发表于 2023-05-31 09:47
objRe.Close
objCon.Close
Set objRe=Nothing
Set obj ...

这段代码是用于释放对象所占用的资源,以避免内存泄漏。其中的 `objRe.Close` 和 `objCon.Close` 分别释放了 Recordset 对象和 Connection 对象所占用的资源,将其关闭,以便其他程序或对象可以通过使用它们来提高效率。

接下来的 `Set objRe=Nothing` 和 `Set objCon=Nothing` 则将分配给这些对象的内存释放,并将其设置为 Null 值。这样做可以确保释放对象所占用的所有内存,从而确保最佳性能和最高效的代码运行。

最后的 `Set objCom=Nothing` 将 Command 对象设置为 Null,也就是释放了该对象所占用的内存资源。一旦释放了所有相关对象的资源,这些对象就可以被垃圾回收器清理并腾出空间。
回复

使用道具 举报

cmt | 2023-5-31 09:48:36 | 显示全部楼层
chatGPT_小控 发表于 2023-5-31 09:48
这段代码是用于释放对象所占用的资源,以避免内存泄漏。其中的 `objRe.Close` 和 `objCon.Close` 分别释 ...

有错误吗
回复

使用道具 举报

chatGPT_小控 | 2023-5-31 09:48:44 | 显示全部楼层

这段代码没有明显的语法错误,但是需要注意的是,如果在执行 SQL 查询之前没有建立有效的 `Connection` 对象,或者 SQL 查询语句有误,那么就会出现运行时错误。因此,在使用这段代码之前,需要确保已经建立了与数据库的连接,并且 SQL 查询语句正确无误,否则可能会导致程序崩溃或者无法正常工作。
回复

使用道具 举报

cmt | 2023-5-31 10:16:00 | 显示全部楼层
Dim objCon,objCom,objRe,strCon
Set objCon=CreateObject("ADODB.Connection")
Set objCom=CreateObject("ADODB.Command")
Set objRe=CreateObject("ADODB.Recordset")
strCon="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Info=False;Initial Catalog=ceshi;Data Source=DESKTOP-6E47LN8\WINCC;UID=chen;PWD=chen;"
objCon.ConnectionString=strCon
objCon.CursorLocation=1
objCon.Open()
CT=HMIRuntime.Tags("cs_time").Read
sb=HMIRuntime.Tags("cs_start_B").Read
eb=HMIRuntime.Tags("cs_end_B").Read
zf=HMIRuntime.Tags("cs_flow_Z").Read
sq1="Insert Into beng_2 (Time,StartB%,EndB%,FlowZ) Values ('"& CT &"','"& sb &"','"& eb &"','"& zf &"')"
objRe.Close
objCon.Close
Set objRe=Nothing
Set objCom=Nothing
Set objCon=Nothing
有没有错误的地方,这段代码能实现什么功能
回复

使用道具 举报

chatGPT_小控 | 2023-5-31 10:16:34 | 显示全部楼层
cmt 发表于 2023-05-31 10:16
Dim objCon,objCom,objRe,strCon
Set objCon=CreateOb ...

这段代码的功能是将 HMIRuntime 中的四个 Tags(`cs_time`, `cs_start_B`, `cs_end_B`, `cs_flow_Z`)的数据插入到名为 `beng_2` 的 SQL Server 数据库表中。具体步骤如下:

1. 创建 `ADODB.Connection`、`ADODB.Command` 和 `ADODB.Recordset` 对象;
2. 设置数据库连接字符串并打开连接;
3. 使用 `HMIRuntime.Tags()` 方法获取四个 Tag 的值;
4. 拼接 SQL 语句,将四个 Tag 值插入到 `beng_2` 表中;
5. 执行 SQL 语句并释放对象所占用的资源。

不过这段代码还有一些错误:

1. 在拼接 SQL 语句时,中文逗号应该改为英文逗号;
2. 在插入数据时,日期时间类型需要使用格式化字符串来避免 SQL 注入等问题。

修正后的代码如下所示:
  1. Dim objCon, objCom, objRe, strCon
  2. Set objCon = CreateObject("ADODB.Connection")
  3. Set objCom = CreateObject("ADODB.Command")
  4. Set objRe = CreateObject("ADODB.Recordset")
  5. strCon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Info=False;Initial Catalog=ceshi;Data Source=DESKTOP-6E47LN8\WINCC;UID=chen;PWD=chen;"
  6. objCon.ConnectionString = strCon
  7. objCon.CursorLocation = 1
  8. objCon.Open()
  9. CT = FormatDateTime(HMIRuntime.Tags("cs_time").Read, vbGeneralDate)
  10. sb = HMIRuntime.Tags("cs_start_B").Read
  11. eb = HMIRuntime.Tags("cs_end_B").Read
  12. zf = HMIRuntime.Tags("cs_flow_Z").Read
  13. sq1 = "Insert Into beng_2 ([Time],[StartB%],[EndB%],[FlowZ]) Values ('" & CT & "','" & sb & "','" & eb & "','" & zf & "')"
  14. objCom.ActiveConnection = objCon
  15. objCom.CommandType = 1
  16. objCom.CommandText = sq1
  17. Set objRe = objCom.Execute
  18. objRe.Close
  19. objCon.Close
  20. Set objRe = Nothing
  21. Set objCom = Nothing
  22. Set objCon = Nothing
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则