不知道是不是我数据量略大的问题一直报错(其实也就7000行不到)

shi5945 2014-04-16 04:47:51
Sub 按钮2_Click()

Dim Conn As New ADODB.Connection '定义ADODB连接对象
Dim ConnStr As String '定义连接字符串

'对于SQL 2008,如果以IP方式访问服务器,必须要启动SQL Server Browser服务,如果是Express版本,要以"IP(计算机名)\实例名"方式访问
ConnStr = "Provider=SQLOLEDB;Data Source = CEINET-EBE049E8\SQLEXPRESS;Initial Catalog = WatchSystem;Integrated Security=SSPI;"

Dim Records As New ADODB.Recordset '定义ADODB对象的记录集
Dim Sheet As Worksheet '定义工作表

Set Sheet = ThisWorkbook.Worksheets(1) '给变量Sheet赋值,注意:是工作簿中索引为1的那个表(通常一个新的工作簿Sheet1的索引为1)
Sheet.Cells.Clear '清空表中原有的数据


Dim SQLStr As String '要执行的SQL语句

SQLStr = "EXEC WatchSystem.dbo.test1"
Conn.Open ConnStr
Set Records = New ADODB.Recordset
Records.Open SQLStr, Conn, adOpenStatic, adLockOptimistic '读取SQL查询结果到Records记录集


Dim i, j, TotalRows, TotalColumns As Integer

j = 0
TotalRows = Records.RecordCount
TotalColumns = Records.Fields.Count

'下面的循环把表头(即列名)写到Excel表的第一行
For i = 0 To TotalColumns - 1
Next

'下面的循环把查询结果写到Excel表中
Do While Not Records.EOF

For i = 0 To TotalColumns - 1
Sheet.Cells(j + 2, i + 1) = Records.Fields(i).Value
Next

Records.MoveNext
j = j + 1

Loop

Records.Close '关闭记录集

Conn.Close '关闭连接

Set Records = Nothing '清空对象
Set Conn = Nothing '清空对象
End Sub
我把sql语句都写在存储过程里了,要是把存储过程里的语句换成简单的sql就没有问题,要是不换就报错
...全文
347 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shi5945 2014-04-18
  • 打赏
  • 举报
回复
引用 3 楼 dsd999 的回复:
[quote=引用 2 楼 shi5945 的回复:] [quote=引用 1 楼 dsd999 的回复:] 我把sql语句都写在存储过程里了,要是把存储过程里的语句换成简单的sql就没有问题,要是不换就报错 这句没太看明白。
这么说吧,我有两个存储过程,一个是写了很多的搜索,各种运算的(我想用的),第二个就只有简单的一句sql,然后我在excel里执行,第一个就报我截图的那个错误,第二个没问题,我在想是不是因为我没优化,运算时间过长,超时了[/quote] 明白了。 我觉得原因和你的想的一样,试试减少搜索,看看正确和出错的过渡。 [/quote]我试了一下,不是超时好像,我在存储过程里有多个select语句,只有最后一个是有返回值的,其他都是写进临时表,第一个select的数据量比较大,如果我限制第一个的结果在30000以内,程序就能运行,如果我不限制第二个,而限制第二个就过不去
dsd999 2014-04-18
  • 打赏
  • 举报
回复
引用 2 楼 shi5945 的回复:
[quote=引用 1 楼 dsd999 的回复:] 我把sql语句都写在存储过程里了,要是把存储过程里的语句换成简单的sql就没有问题,要是不换就报错 这句没太看明白。
这么说吧,我有两个存储过程,一个是写了很多的搜索,各种运算的(我想用的),第二个就只有简单的一句sql,然后我在excel里执行,第一个就报我截图的那个错误,第二个没问题,我在想是不是因为我没优化,运算时间过长,超时了[/quote] 明白了。 我觉得原因和你的想的一样,试试减少搜索,看看正确和出错的过渡。
shi5945 2014-04-17
  • 打赏
  • 举报
回复
引用 1 楼 dsd999 的回复:
我把sql语句都写在存储过程里了,要是把存储过程里的语句换成简单的sql就没有问题,要是不换就报错 这句没太看明白。
这么说吧,我有两个存储过程,一个是写了很多的搜索,各种运算的(我想用的),第二个就只有简单的一句sql,然后我在excel里执行,第一个就报我截图的那个错误,第二个没问题,我在想是不是因为我没优化,运算时间过长,超时了
dsd999 2014-04-17
  • 打赏
  • 举报
回复
我把sql语句都写在存储过程里了,要是把存储过程里的语句换成简单的sql就没有问题,要是不换就报错 这句没太看明白。
内容概要:本文详细介绍如何通过搭建ELK(Elasticsearch、Logstash、Filebeat、Kibana)日志分析系统,实现对大模型Token中转服务的全链路可观测性管理。系统能够实时追踪每次API调用的性能指标(如首包耗时、总耗时)、Token消耗、费用核算、用户为及异常请求,解决自建中转服务长期存在的“黑盒”问题,包括费用不清、性能瓶颈难定位、恶意刷量难识别等痛点。文章提供完整的日志结构设计、ELK组件配置方案(可直接复制部署)以及Kibana五大核心可视化看板,覆盖从数据采集、清洗、存储到展示的全流程,适用于个人、团队或企业级AI网关场景。; 适合人群:具备一定运维与开发能力的技术人员,如AI中台工程师、DevOps、私有化部署开发者及企业AI基础设施负责人,尤其适合运营Token代理、模型中转服务的团队; 使用场景及目标:① 实现API调用的精准费用分摊与成本控制;② 定位性能瓶颈与慢请求根源;③ 识别恶意刷量与异常调用为;④ 构建可审计、可告警、可复盘的生产级可观测体系; 阅读建议:此资源强调结构化日志输出与业务字段定义的重要性,建议读者结合自身中转服务架构,严格按照JSON日志模板实施,并完整配置ELK链路以发挥最大效能,同时关注文中避坑指南以保障系统稳定运

5,174

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧