我用 odbc 的方法连接oracle 数据库,数据库已经连通了,但一下语句无法运行,
当运行到retest.update的时候vb就死掉了Private Sub Command1_Click()
Dim cn As ADODB.Connection
Dim rstest As ADODB.Recordset
Dim cot As Integer
Dim s As String
Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.ConnectionString = "DSN=sbzwyy;Uid=system;Pwd=manager;"
cn.Open
Set retest = New ADODB.Recordset
retest.Open "select grbh,djfs from ttt where rownum < 2", cn, adOpenDynamic, adLockOptimistic If retest.RecordCount = 0 Then
retest.AddNew
End If
s = "ee222"
retest.Fields("grbh").Value = s
retest.Fields("djfs").Value = "12"
retest.Update
retest.Close
Set retest = Nothing
cn.Close
Set cn = Nothing
End Sub
当运行到retest.update的时候vb就死掉了Private Sub Command1_Click()
Dim cn As ADODB.Connection
Dim rstest As ADODB.Recordset
Dim cot As Integer
Dim s As String
Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.ConnectionString = "DSN=sbzwyy;Uid=system;Pwd=manager;"
cn.Open
Set retest = New ADODB.Recordset
retest.Open "select grbh,djfs from ttt where rownum < 2", cn, adOpenDynamic, adLockOptimistic If retest.RecordCount = 0 Then
retest.AddNew
End If
s = "ee222"
retest.Fields("grbh").Value = s
retest.Fields("djfs").Value = "12"
retest.Update
retest.Close
Set retest = Nothing
cn.Close
Set cn = Nothing
End Sub
改用Insert语句,让cn.execute InsSQL 来执行,看行不行。
retest.Fields("grbh").Value = s字符過長
谁有例子给我看看?
改为:
retest.Open "select grbh,djfs from ttt where rownum < 2", cn, adOpenStatic, adLockBatchOptimistic
试试!
那么你的retest.RecordCount<>0,
那么retest.AddNew就没有执行。
没有执行AddNew,也没有Edit,那Update就出错