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

將excel資料導入數據庫(MS SQL)在完成時出錯?

尚未結案
danielldf
一般會員


發表:44
回覆:60
積分:20
註冊:2003-05-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-09 16:49:53 IP:218.16.xxx.xxx 未訂閱
我有筆excel資料要導入到數據庫中(每欄格式為374365 2003-09-03 23:59:58 0),可是數據導入完時就報錯,意思是無效的格式轉換。若加上try…finally則是在對話框出現後每點一次確定將資料從頭開始繼續往數據庫中加入資料!各式如下,請各位先進幫忙看看: procedure TForm1.Button1Click(Sender: TObject); var i: Integer; BoxNo: variant; MsExcel, MsExcelWorkBook, MsExcelWorkSheet: Variant; begin MsExcel := CreateOleObject( 'Excel.Application'); MsExcelWorkBook := msExcel.Workbooks.Open( 'f:\03.xls'); MsExcelWorkSheet := msExcel.Worksheets.Item[1]; Table1.Open; for i := 1 to MsExcelWorkSheet.Rows.Count do try begin BoxNo := MsExcelWorkSheet.Range['a' IntToStr(i)].Value; if BoxNo <>'' then begin Table1.Append; Table1.FieldByName('cardno').Value := copy(BoxNo,1,6); Table1occurtime.value:=strtodatetime(copy(boxno,8,24)); Table1.Post; // sql.add:='update originalcheckdata set employeeID=b.employeeID from originalcheckdata a, employeemsg b where a.cardno=b.cardno where occurtime>'2003-09-01''; end else exit; end; finally showmessage('處理完畢'); // exit; end; Table1.Close; MsExcel.Quit; end;
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-09 19:46:31 IP:218.165.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  BoxNo: variant;
  MsExcel, MsExcelWorkBook, MsExcelWorkSheet: Variant;
begin
  MsExcel := CreateOleObject('Excel.Application');
  MsExcelWorkBook := msExcel.Workbooks.Open('f:\03.xls');
  MsExcelWorkSheet := msExcel.Worksheets.Item[1];
  Table1.Open;
  try
    for i := 1 to MsExcelWorkSheet.Rows.Count do
    begin
      BoxNo := MsExcelWorkSheet.Range['a'   IntToStr(i)].Value;
      if BoxNo <> '' then
      begin
        Table1.Append;
        Table1.FieldByName('cardno').Value := copy(BoxNo, 1, 6);
        Table1.FieldByName('occurtime').AsDateTime := strtodatetime(copy(boxno, 8, 24));
        Table1.Post;
// sql.add:='update originalcheckdata set employeeID=b.employeeID from originalcheckdata a, employeemsg b where a.cardno=b.cardno where occurtime>'2003-09-01'';
      end
      else
        exit;
    end;
  finally
    showmessage('處理完畢');
// exit;
  end;
  Table1.Close;
  MsExcel.Quit;
end;
TRY TRY SEE...
系統時間:2024-06-29 17:32:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!