none
寫入大型資料到Access資料庫 RRS feed

  • 一般討論

  • 我想寫入500mb以上的資料到Access資料庫的OLE欄位,目前知道的方法只有利用OleDbParameter來寫入,但是這樣只能接受Byte[]來當資料來源,那如果我今天要寫入500mb到資料庫不就需要一次快取500mb的資料到記憶體嗎?想請問有沒有類似資料流的寫入方式,或是OLE欄位有沒有辦法用累加的方式寫進去呢?
    2011年5月2日 上午 06:14

所有回覆

  • 要以累加的方式寫入資料可以考慮寫入到檔案, 再把檔案名稱記載在資料庫記錄的欄位中
    2011年5月2日 下午 01:11
  • Access 檔案大小限制為2G

    如果你的資料是500M

    只要存4筆就爆了吧

    應該採用tihs大的建議, 寫到檔案, 再將檔案名稱及路徑存在資料庫中


    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度
    2011年5月2日 下午 03:41
  • 我現在的做法是實作Stream資料流,在寫入前資料流先去註冊需要的空間,然後才開始寫入,如Alex所說Access有2g限制,所以註冊的時候如果發現所存在的資料庫不夠多,它會自動產生直到夠多。 我現在的Stream寫法是先讓使用者傳送的資料快取到MemoryStream當緩衝區,直到超過一定量之後寫入資料庫變成整個存入物的一段然後用Guid標記,當寫完之後使用者呼叫Close方法時,再把所有段落的Guid存到索引資料庫。 不使用檔案主要是因為要寫入的物件可能非常大或非常小但非常多,如果是寫入檔案可能變得很瑣碎。
    2011年5月3日 上午 02:38