處理ASP 後端資料庫從2000升級到2005 SP2的一些問題整理   1 comment

  1. ASP網站程式在使用指標的方式執行資料更新、刪除時發生錯誤!!!!
    這個問題我有PO在MSDN 的技術論壇 點我查看

    >>連線字串:
    DatabaseConnectionString ="PROVIDER=SQLOLEDB;DATA SOURCE=XXX;UID=XXX;PWD=XXX;DATABASE=XXXX;DataTypeCompatibility=80;"  

    >>在執行下列ASP程式時發生錯誤
        rs.open "select 科目代碼,學號, 年度 , 學期  FROM MyCourse where 學號=’123′ ",cn,2,3
        rs.delete
        還有 rs.update 或 rs.cancelUpdate 都會無法執行

    >>執行上述指令時發生的錯誤訊息
    Microsoft OLE DB Provider for SQL Server 錯誤 ‘80004005’
    資料指標並未包含要修改的資料表,或是資料表無法透過資料指標來更新。

    解決方法如下:

    在set cn = server.CreateObject("ADODB.Connection")
    之後,設定 ConnectionCursorLocation 屬性 為 adUseClient
    不過在程式中要寫成
    cn.CursorLocation = 3

    以下提供 CursorLocation  參數定義表 

    參數名稱 參數定義值 說明
    adUseNone 1 Obsolete
    adUseServer 2 使用server-side cursor (預設)
    adUseCleint 3 使用Client-side cursor
    adUseClientBatch 3 Obsolete

     

    以上定義表內容來自 <http://blog.xuite.net/starsand/programming/16708391>

  2. ASP網站在執行Store Porcedures發生下列錯誤訊息

    參考資料 點我開啟

    ADODB.Recordset 錯誤 ‘800a0cc1’
    在所要求名稱或序數的相關集合物件中找不到此項目。
    /select1/esc_query.asp, 列33

    該網頁的程式碼如下:

    sqlstr="exec dbo.History_StdScore ‘" & stdID & "’"

        rs.open sqlstr,cn,0,1
        for i = 0 to 11
            response.write "<B>" & rs.fields(i).name & "</B><BR>"
        next
        response.write "</tr>"

    錯誤是發生在紅色那行字,主要是說明 rs.fields(i) 的集合中沒有項目,後來我在頁面上印出 fields 的欄位數
    (程式碼為  response.write rs.fields.count   結果顯示為0)

    而該Store Procedure 主要是把查詢的資料用SELECT 顯示出來

    後來才發現 原來 rs (RecordSet) 抓到SQL 回傳影響列數的文字資料 (   (1) 列資料被影響  )
    因此在呼叫的Store Procedure 裡面加上 SET NOCOUNT ON;,將回傳影響資料文字訊息關閉,即可解決rs抓不到資料集的問題

廣告

Posted 2008 年 09 月 01 日 by sfcer0414 in KB

One response to “處理ASP 後端資料庫從2000升級到2005 SP2的一些問題整理

Subscribe to comments with RSS.

  1. 感謝您分享寶貴的經驗,THX 🙂

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

%d 位部落客按了讚: