用VB執行SQL語句太長的問題

TaoHuang 2003-06-28 11:08:22
我用的開發工是VB6.0+SQL Sever7.0

我在VB中用以下語句執行時
l_strSQL="Begin Transaction" & vbCrLf & l_SaveSQL & vbCrLf & "Commit Transaction"
g_cnnMain.Execute l_strSQL
當l_SaveSQL不是很長的時候,以上語句完全正確,但當此語句太長是,一般到300多條SQL語句,大概100,000字節長時,以上語句就有點問題,在執行時并不出錯,但是它只行了其中一部分語句,沒有執行到"Commit Transaction",所以在斷開Connection的連接時,數據會自動被RollBack。但如果我將SQL語句分開執行就沒有問題。
請問高手這是什么原因?是不是要執行的SQL語句不能太長?謝謝
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
czwwh 2003-07-01
  • 打赏
  • 举报
回复
所操作的字段不能超过128个
胖河马 2003-06-30
  • 打赏
  • 举报
回复
sql好像不能超过4k
ad4017 2003-06-30
  • 打赏
  • 举报
回复
VB中的字符串长度是有限制的,不能大于65536个字符,这种情况下,如果SQL语句太长的话,可以使用存储过程,然后用VB调用存储过程,一切就OK了。
guofengx 2003-06-30
  • 打赏
  • 举报
回复
一般一条记录的总字数在超过8000时,用insert语句就不行了,这是SQL说的,这时最好还是用recordset或者用command吧。
wdwd05 2003-06-30
  • 打赏
  • 举报
回复
用VB做事务的时候,不要用SQL里面定义的事务去做~~~也就是不要把事务写成一个SQL语句~~

要用ADODB.Connection所带的事务方法
TaoHuang 2003-06-30
  • 打赏
  • 举报
回复
我聽說分開寫會有一些不可意料的問題,所以最好不分開寫。用储存结构做很麻煩,而且難實現。我Debug出來的SQL語句是完整的。就是不知它為何不能全部保存。
zxlkxy 2003-06-28
  • 打赏
  • 举报
回复
在做.Execute 前显示一下l_strSQL,看是不是全部出来了。
也有可能Execute方法限制,SQL语句的长度。

参数不多的话,用储存结构做吧!
SammyXu 2003-06-28
  • 打赏
  • 举报
回复
我想是String类型的长度限制
czwwh 2003-06-28
  • 打赏
  • 举报
回复
没有测试过,我想肯定有限制的。你分开来好了,为什么非要用一条语句呢?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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