在用Enterprise Manager的图形界面或者vb的ADO代码ADDNEW、UPDATE时老出这错。
但在Enterprise Manager里执行T-SQL的UPDATA、INSERT时不出错,结果也正常。
我想用vb的ADO代码来实现,请问如何解决?
但在Enterprise Manager里执行T-SQL的UPDATA、INSERT时不出错,结果也正常。
我想用vb的ADO代码来实现,请问如何解决?
win2000
SQL Server 2000/7.0
' BeginUpdate2VB
Public Sub UpdateX2() Dim cnn1 As ADODB.Connection
Dim rstEmployees As ADODB.Recordset
Dim strEmpID As String
Dim strOldFirst As String
Dim strOldLast As String
Dim strMessage As String
Dim strCnn As String ' Open a connection.
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=MyServer;Initial Catalog=Pubs;User Id=sa;Password=; "
cnn1.Open strCnn ' Open recordset with data from Employees table.
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "employee", cnn1, , , adCmdTable rstEmployees.AddNew
strEmpID = "B-S55555M"
rstEmployees!emp_id = strEmpID
rstEmployees!fname = "Bill"
rstEmployees!lname = "Sornsin" ' Show contents of buffer and get user input.
strMessage = "AddNew in progress:" & vbCr & _
"Data in buffer = " & rstEmployees!emp_id & ", " & _
rstEmployees!fname & " " & rstEmployees!lname & vbCr & vbCr & _
"Use Update to save buffer to recordset?" If MsgBox(strMessage, vbYesNoCancel) = vbYes Then
rstEmployees.Update
' Go to the new record and show the resulting data.
MsgBox "Data in recordset = " & rstEmployees!emp_id & ", " & _
rstEmployees!fname & " " & rstEmployees!lname
Else
rstEmployees.CancelUpdate
MsgBox "No new record added."
End If ' Delete new data because this is a demonstration.
cnn1.Execute "DELETE FROM employee WHERE emp_id = '" & strEmpID & "'"
rstEmployees.CloseEnd Sub
'EndUpdate2VB
設一個ID字段,瓣生一個自動ID以后不會再有問題