none
關於交易存檔,異動無法以此資料指標 (cursor ) 類型取得多重記錄集 RRS feed

  • 一般討論

  • 使用VB6 開發的應用程式,原先使用 Access mdb 資料庫格式

    改用Sql Server 2005  

    存檔時出現以下訊息

    異動無法以此資料指標 (cursor ) 類型取得多重記錄集。請改變資料指標類型、認可此異動、或關閉其中一個資料錄集。

    連線 透過 ODBC 驅動程式

    當使用本機的SQL SERVER 時,一切正常

    當測試連線 到 另外一台電腦( 作業系統:WINDOWS SERVER 2000 , SQL SERVER: 同樣是 VB 2005 附的 開發版 )
    此時 資料要存檔時,就會出現 上述錯誤訊息。


    資料表開啟時,主資料表是由如下方式開啟

    With PrintWork_RS
        .CursorType = adOpenKeyset
        .LockType = adLockPessimistic
         A = "Select e1.* From e1 Where (a0=" & NowID & ")"
        If .State = adStateOpen Then .Close
        .CursorLocation = adUseClient                       '將游標定義在client 這端
        .Open A, objConn, , , 8
        .....


    存檔時,是用如下方式先存明細表,再存主資料表,但是存第一個明細表時就會遭遇上述錯誤。

     A = " INSERT INTO b1 (" & _
                "field1 ,field2 ,field3....) " & _
                " VALUES (" & _
                value1 & "," & _
                 value2 & "," & _
                  value3  & "," & _
                .....)

             Set Rs = objConn.Execute(A)

    有搜尋到文章,說將 Set Rs = objConn.Execute(A) 改成  objConn.Execute(A) 可以解決上述問題。
    但我試了,無效。覺得兩者應該沒差才對。

    重點是,我透過odbc 連線本機的 SQL Server 的話 就可以順利存檔,但是 相同的程式,連線到 另外一台電腦的SQL Server 就不行。
    不確定是程式有問題,或是 SQL 設定有問題。
    我也是著 把 另外一台電腦的 SQL 使用紙的全縣全部打開,也還是不行。

    依照錯誤訊息 應該是指標的問題,但我換其他指標也是不行

    實在是沒轍了,只好再來麻煩各位先進 幫幫忙了










    2009年5月18日 下午 12:19

所有回覆

  • 我用的跟你不太一樣~
    我是用
    CursorType = adOpenStatic
    CursorLocation = adUseClient
    LockType = adLockOptimistic


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年5月18日 下午 01:55
  • 還是不行

    會不會是另外一台電腦的sql server 動到的什麼設定或是啟動了那個不改啟動的服務?

    因為 同樣的程式  連線本機的 sql server 是ok的,只有連線到另外一台電腦的sql server 才不行


    2009年5月19日 上午 07:47
  • 搞定了

    回頭再來研究這個問題,忽然開竅了

    原來 資料指標的問題,不是在我的RS,而是連線字串,我一直在測試 開啟資料表這端,自然都不行。

      Set QuickMdbConn = New ADODB.Connection

    ==>  'QuickMdbConn.CursorLocation = adUseClient

    改成=>>   QuickMdbConn.CursorLocation = adUseServer

    因為原先是用 Access MDB 的資料庫,所以設定在 Client 端
    現在 連線 sql 資料 ,在本機時,也沒問題, 但要連線到另一台電腦, 將連線指標改到 server 端 就 ok了。

    2009年6月20日 上午 06:05