none
用二個recordset複製資料的問題... RRS feed

  • 問題

  • 小弟目前是準備將excel的資料copy到sqlserver裡....
    我用了二個recordset來處理...
    一個連excel...一個連sql..
    用addnew一筆一筆寫入....每個欄位都是文字
    程式大約如下:
        Do While Not xlRs.EOF
            sqlRs.AddNew
            sqlRs("A") = xlRs("A")
            sqlRs("B") = xlRs("B)
            'sqlRs("C") = xlRs("C")
            sqlRs("D") = xlRs("D")
            'sqlRs("E") = xlRs("E")
            sqlRs("F") = xlRs("F")
            sqlRs.Update
            sqlRs.MoveNext
            xlRs.MoveNext
        Loop

    執行後就會出現錯誤....
    "多重步驟OLEDB操作發生錯誤。請檢查每一個可用的OLEDB狀態值。尚未完成任何操作。"
    後來我發現是其中二個欄位有問題,只要不copy那二個欄位就可以順利完成複製...
    請問一下..我要怎麼處理丫...因為我必須要全部欄位都copy....

     

    2006年6月13日 上午 01:16

解答

  •  橘子 寫信:

    不好意思..我寫的不清楚....
    我指的是用什麼方式....可以達成下sql指令來copy資料...
    我對recordset不是很熟...
    所以只好用addnew來慢慢加..
    是否有辦法把資料從recordset1複製到recordset2去?
    我目前是用ado來連結excel跟sql....用二個recordset...

    由 Excel 產生一個 Recordset,產生 SQL 指令字串 (INSERT INTO...) ,再由連接到 SQL Server 的 ADO connection 物件去執行那個 SQL 指令就行了 .

    提示:Connection.Execute(SQL 指令)

    2006年6月13日 上午 07:30
    版主

所有回覆

  • 1. 這可能是個 ADO 的 bug: http://support.microsoft.com/kb/294160/en-us

    2. 建議你不要使用 ADO 的 AddNew,使用 SQL 指令會比較快 .

    2006年6月13日 上午 02:42
    版主
  • 請問您所說的SQL指令為何??
    可以讓我從excel裡copy資料到sqlserver嗎?

    2006年6月13日 上午 03:13
  •  橘子 寫信:

    請問您所說的SQL指令為何??
    可以讓我從excel裡copy資料到sqlserver嗎?

     ....

    使用資料庫連 SQL 指令都不知道,這 ....
    去翻翻書吧,書裡面都有講 .

    http://msdn2.microsoft.com/zh-tw/library/ms181096(SQL.90,en-us).aspx

    2006年6月13日 上午 03:48
    版主
  • 不好意思..我寫的不清楚....
    我指的是用什麼方式....可以達成下sql指令來copy資料...
    我對recordset不是很熟...
    所以只好用addnew來慢慢加..
    是否有辦法把資料從recordset1複製到recordset2去?
    我目前是用ado來連結excel跟sql....用二個recordset...

    2006年6月13日 上午 06:46
  •  橘子 寫信:

    不好意思..我寫的不清楚....
    我指的是用什麼方式....可以達成下sql指令來copy資料...
    我對recordset不是很熟...
    所以只好用addnew來慢慢加..
    是否有辦法把資料從recordset1複製到recordset2去?
    我目前是用ado來連結excel跟sql....用二個recordset...

    由 Excel 產生一個 Recordset,產生 SQL 指令字串 (INSERT INTO...) ,再由連接到 SQL Server 的 ADO connection 物件去執行那個 SQL 指令就行了 .

    提示:Connection.Execute(SQL 指令)

    2006年6月13日 上午 07:30
    版主
  • 嗯...小弟了解您的意思了..
    我以為一定要建立Recrodset才能處理資料...
    沒想到可以不用...觀念不清楚....@@
    讓您費心教我了....
    我馬上來試試看...謝啦!!......

    2006年6月13日 上午 09:07