在用Enterprise Manager的图形界面或者vb的ADO代码ADDNEW、UPDATE时老出这错。
但在Enterprise Manager里执行T-SQL的UPDATA、INSERT时不出错,结果也正常。
我想用vb的ADO代码来实现,请问如何解决?

解决方案 »

  1.   

    vb6.0专业版
    win2000
    SQL Server 2000/7.0
      

  2.   

    This example demonstrates the Update method in conjunction with the AddNew method=========================================================
    ' 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
      

  3.   

    程序不能根本解決,問題出在表本身
    設一個ID字段,瓣生一個自動ID以后不會再有問題