救命~VB 执行Update时 提示超时已过期解决办法

救命~VB 执行Update时 提示超时已过期代码很简单 sql用的是2005 请指教:Public Function getConnection()

救命~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秒...
[解决办法]

探讨
相比较insert命令而言,执行update命令本身是比较耗时的,如果如楼主所说这个SQL语句在SQL查询分析器中可以完成,而且执行时间比较长,那么尝试在代码中设置CommandTimeout一个较长时间,默认是30秒...

[解决办法]
将整个 updatestr 用 Debug.Print 输出,然后用查询分析器执行,看看需要多少时间。
然后根据这个时间来设置 Timeout。

如果时间实在太长,用查询分析器的执行计划分析一下,优化一下 SQL。