線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1191
推到 Plurk!
推到 Facebook!

Dataset2XLS出錯了(使用本站的XLSfile.pas)

尚未結案
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-15 08:43:37 IP:219.130.xxx.xxx 未訂閱
使用XLSfile.pas出現錯誤了(急急......) 我使用了以下這個XLSfile.pas在我的程序中出現了錯誤 http://delphi.ktop.com.tw/topic.php?topic_id=22993 導入的資料表中只要有一欄位為空的時候,導入就會出現問題Rang Check Error 錯誤,麻煩各位大大幫忙一下,謝謝! 完整的程序在這裡 http://delphi.ktop.com.tw/loadfile.php?TOPICID=15690703&CC=350917
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-15 12:44:39 IP:218.170.xxx.xxx 未訂閱
    在datasettoxls這一段        while (not DS.eof) and (r <= xls.MaxRows) do
      begin
        for c:=0 to DS.FieldCount-1 do
          begin
            if DS.Fieds[c].isnull then
               xls.WriteField(r,c,'')
            else
               xls.WriteField(r,c,DS.Fields[c]);
          end;  
        inc(r);
        PB1.StepIt;
        Application.ProcessMessages;
        DS.next;
      end;
再試試看吧
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-15 18:29:12 IP:218.170.xxx.xxx 未訂閱
或    
    在datasettoxls這一段        while (not DS.eof) and (r <= xls.MaxRows) do
      begin
        for c:=0 to DS.FieldCount-1 do
          begin
            if DS.Fieds[c].isnull then
               xls.WriteField(r,c,'""')
            else
               xls.WriteField(r,c,DS.Fields[c]);
          end;  
        inc(r);
        PB1.StepIt;
        Application.ProcessMessages;
        DS.next;
      end;
再試試看吧
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-15 19:28:28 IP:219.130.xxx.xxx 未訂閱
類型不對呀 [Error] XLSfile.pas(80): Incompatible types: 'TField' and 'String'
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-15 19:30:49 IP:218.170.xxx.xxx 未訂閱
應該是WriteField(r,c,DS.Fields[c]); 這一段需要傳入tfield作為參數 抱歉沒有仔細看 重點就是如果欄位值為null 就改以 "" 傳入 都說到這樣了 自己改改看 不行再反應 ok?
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-16 16:16:19 IP:219.130.xxx.xxx 未訂閱
引言: 應該是WriteField(r,c,DS.Fields[c]); 這一段需要傳入tfield作為參數 抱歉沒有仔細看 重點就是如果欄位值為null 就改以 "" 傳入 都說到這樣了 自己改改看 不行再反應 ok?
我想並不是這個問題 我重新創建一個Project,然後導入這幾個檔案xlsfile.pas,wait_u.pas,exportform_u.pas 卻沒有問題,所以問題應該出再mainform這個窗體上
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-16 16:20:12 IP:218.170.xxx.xxx 未訂閱
你使用什麼database呢 如果能夠提供資料庫檔案 那麼可能可以幫你測試看看程式碼...
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-17 08:12:58 IP:219.130.xxx.xxx 未訂閱
引言: 你使用什麼database呢 如果能夠提供資料庫檔案 那麼可能可以幫你測試看看程式碼...
SQLSERVER資料庫,順便你用一個資料表,只要有一個空子段就可以測試呀 謝謝!
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-05-18 15:44:01 IP:219.130.xxx.xxx 未訂閱
搞定了,謝謝各位.......
系統時間:2024-11-24 19:48:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!