是这样的,数据库的连接及一般的操作都没有问题,
但是在SQL句子后面加上加  FOR UPDATE NOWAIT  后问题就出来了
如果我在其他的地方将数据锁住,
按理说他应该报  ORA-00054  的错误,
但是实际情况是搜不到数据,
真奇怪,
但是如果我把数据库的连接方式换成
MSDASQL.1的话就可以正常的抓到  ORA-00054 的错误
为什么呢???????????

解决方案 »

  1.   

    把程序也贴上来!
    Public Function ConnectToDb(ByRef cn As Connection, strUsername As String, _
                    strPassword As String, strDataBase As String) As Boolean
    On Error GoTo ConnectToDbError
        ConnectToDb = False
        Screen.MousePointer = vbHourglass
        Set cn = New Connection
        cn.Open "Provider=MSDAORA.1" & ";" & "User ID=" & strUsername & ";" & "Password=" & strPassword & ";" & _
                "Data Source=" & strDataBase & ";" & "Persist Security Info=False"
        Screen.MousePointer = vbDefault
        ConnectToDb = True
        Exit Function
    ConnectToDbError:
        Screen.MousePointer = vbDefault
        ConnectToDb = False
        If g_bDebug Then
            ShowDebugInfo
        End If
    End Function
      

  2.   

    还有一种就是Function ConnectToDB() As Integer
    Dim sDataSource As String
    Dim sUserID     As String
    Dim sPassWord   As String    sDataSource = S_GetIniFileString("DBID", "DATASOURCE", sIniFileFullName)
        sUserID = S_GetIniFileString("DBID", "USERID", sIniFileFullName)
        sPassWord = S_GetIniFileString("DBID", "PASSWORD", sIniFileFullName)On Error GoTo Open_error:
        Set CON_NYUTEN = New ADODB.Connection
        CON_NYUTEN.ConnectionString = "Provider=MSDASQL.1;" & _
                                      "Data Source=" & sDataSource & ";" & _
                                      "User ID=" & sUserID & ";" & _
                                      "Password=" & sPassWord & ";" & _
                                      "Persist Security Info=True"
        CON_NYUTEN.Open
        ConnectToDB = 0
        Exit FunctionOpen_error:
        Call SqlError
        Set CON_NYUTEN = Nothing
        ConnectToDB = -1
    End Function