如何解決 Jet Oledb 欄位長度255的限制? |
缺席
|
douglas
初階會員 ![]() ![]() 發表:24 回覆:42 積分:38 註冊:2008-03-05 發送簡訊給我 |
Delphi 2009
[ADOConnection] Provider=Microsoft.Jet.OLEDB.4.0; Data Source=檔案實體路徑; Extended Properties=Excel 8.0; Persist Security Info=False; ADOQry1負責選取資料來源 ADOTable1負責操作Excel檔案 ADOTable1.Append; ADOTable1.FieldByName('欄位名稱').Value := ADOQry1.FieldByName('欄位名稱').AsString; ADOTable1.Post; 當ADOQry1欄位裡的資料長度超過255時 ADOTable1.Post會發生E-Fail異常!! 請教各位大大, 這該從何著手解決?? 編輯記錄
douglas 重新編輯於 2009-07-13 21:59:11, 註解 無‧
|
max5020
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:30 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
|
douglas
初階會員 ![]() ![]() 發表:24 回覆:42 積分:38 註冊:2008-03-05 發送簡訊給我 |
您好, 感謝您的熱心回覆.
您推薦的文章我有看過, 不過裡面的解決方法是採用以下方法 ExcelAP:= CreateOleObject('Excel.Application'); 的確可以解決資料長度255的限制, 不過速度卻讓人詬病, 資料筆數在一萬筆以內的話, 勉強還能等待 一但在十萬筆以上, 加上欄位一多, 轉檔的時間就很恐怖了. (還是是在下的知識不足, 尚有其他設定值可以改善?) 目前參考到的文章皆說明欄位長度的限制是Jet Oledb無法解決的問題... orz ===================引 用 max5020 文 章=================== 請參考這篇 , 參考這篇, http://delphi.ktop.com.tw/board.php?cid=30&fid=1498&tid=98462 |
max5020
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:30 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
|
douglas
初階會員 ![]() ![]() 發表:24 回覆:42 積分:38 註冊:2008-03-05 發送簡訊給我 |
感謝您熱心答覆 ^_^
的確Excel每個WorkSheet有65536筆資料的限制 超過的部分採用開立下一資料頁或是新增第二個檔案來應對. 會採用Excel作為資料呈現的平台, 主要是考慮到使用者的便利. 我嘗試過使用CSV檔, 雖然沒有資料筆數的限制, 但是碰上UniCode的資料, Excel無法自動轉換, 造成使用者的不便. 目前正嘗試在MS-SQL伺服器端建立DTS服務 採用T-SQL語法觸發匯出 希望能順利 (阿迷豆腐...) ===================引 用 max5020 文 章=================== 據我所知, EXCEL最多只能65536筆, 應該不會有十萬筆的情形, 我也知道樣很慢, 不過從EXCEL大量轉檔, 應該也不是常態!! |
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
douglas
初階會員 ![]() ![]() 發表:24 回覆:42 積分:38 註冊:2008-03-05 發送簡訊給我 |
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
douglas
初階會員 ![]() ![]() 發表:24 回覆:42 積分:38 註冊:2008-03-05 發送簡訊給我 |
您好:
因為在發問之前就已經先爬過文 自己也測試過站內提供各種操作 Excel 的方法 (包含 max5020 大大熱心提供的文章在發問之前也已閱讀過) 使用到 Jet Oledb 時發現最符合我的要求 但是使用過了一陣子才意外發生 E-Fail 的錯誤 經過查證才得知有欄位長度的限制 我想這個給分的反應應該是我這個個案吧 = =" 因為想要的是如何解決 Jet Oledb 欄位長度的限制 而不是其他操作 Excel 的方法 感謝您對於網民權益的關心 ^_^ ===================引 用 taishyang 文 章=================== 我以為問題的焦點在excel上 而且你的回應也說明max5020的回應(下面紅字部分)可以解決長度限制的問題,雖然速度上不滿意 所以基本上我會認為已經解答了你"標題"的問題,只是衍伸出速度的問題 你的回應如下: 您推薦的文章我有看過, 不過裡面的解決方法是採用以下方法 ExcelAP:= CreateOleObject('Excel.Application'); 的確可以解決資料長度255的限制, 不過速度卻讓人詬病,
編輯記錄
douglas 重新編輯於 2009-07-13 17:09:31, 註解 無‧
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |