救命~VB 执行Update时 提示超时已过期
代码很简单 sql用的是2005 请指教:
Public Function getConnection()
'**********************
'2009-11-11
'数据库连接
'**********************
'Set conn = New adodb.Connection
' 用ODBC DSN 建立连接
conn.ConnectionString = "DSN=wyqtest;UID=sa;PWD=78963214q;"
If conn.State = 1 Then
conn.Close
End If
conn.Open
End Function
Public Function EidtVoucher()
Dim updatestr1 As String
Dim updatestr2 As String
Dim updatestr As String
updatestr1 = "update wyq_Vouchers set Voucher_gscode='" & vouchers.Voucher_gscode & "',Voucher_code='" & vouchers.Voucher_code & "',Voucher_date='" & vouchers.Voucher_date & "',Voucher_ram='" & vouchers.Voucher_ram & "',Voucher_abstract1='" & vouchers.Voucher_abstract1 & "',Voucher_abstract2='" & vouchers.Voucher_abstract2 & "',Voucher_abstract3='" & vouchers.Voucher_abstract3 & "',Voucher_abstract4='" & vouchers.Voucher_abstract4 & "',Voucher_abstract5='" & vouchers.Voucher_abstract5 & "',Voucher_subject1='" & vouchers.Voucher_subject1 & "',Voucher_subject2='" & vouchers.Voucher_subject2 & "',Voucher_subject3='" & vouchers.Voucher_subject3 & "',Voucher_subject4='" & vouchers.Voucher_subject4 & "',Voucher_subject5='" & vouchers.Voucher_subject5 & "'"
updatestr = updatestr1 & "," & updatestr2
Debug.Print "updatestr>>>>" & updatestr
Call getConnection
Call conn.Execute(updatestr)
conn.Close
End Function
除了上面的更新操作以外,查询,插入,删除均正常而且sql语句再2005中执行正常无问题,请问这是怎么回事
[解决办法]
updatestr2没有了
导致
updatestr = updatestr1 & "," & updatestr2 出错
[解决办法]
相比较insert命令而言,执行update命令本身是比较耗时的,如果如楼主所说这个SQL语句在SQL查询分析器中可以完成,而且执行时间比较长,那么尝试在代码中设置CommandTimeout一个较长时间,默认是30秒...
[解决办法]
[解决办法]
将整个 updatestr 用 Debug.Print 输出,然后用查询分析器执行,看看需要多少时间。
然后根据这个时间来设置 Timeout。
如果时间实在太长,用查询分析器的执行计划分析一下,优化一下 SQL。
