全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1043
推到 Plurk!
推到 Facebook!

txt档转回sql server中的table

尚未結案
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-08 15:20:05 IP:61.164.xxx.xxx 未訂閱
求教各位大大: 小弟可以做到用程式将adotable或dbgrid中的资料转出为txt档,但请问如何才能将转出的txt档再转回sql server中的table中呢(用程式实现)? 小弟使用delphi6,ado,sql server Thank you very mcuh!
danielldf
一般會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-08 16:03:43 IP:218.16.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('e:\02.txt'); 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; end else exit; end; finally showmessage('處理完畢'); end; Table1.Close; MsExcel.Quit; end; 努力过,还有什么遗憾呢!
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-09 23:05:11 IP:61.230.xxx.xxx 未訂閱
引言: 求教各位大大: 小弟可以做到用程式将adotable或dbgrid中的资料转出为txt档,但请问如何才能将转出的txt档再转回sql server中的table中呢(用程式实现)? 小弟使用delphi6,ado,sql server Thank you very mcuh!
您好 可參考天使的範例 DB<-> TXT http://delphi.ktop.com.tw/topic.php?TOPIC_ID=22274
procedure TForm1.BitBtn2Click(Sender: TObject);
var i:integer;
  s,s2,s3,s4:string;
  F:TextFile;
  ws:string;
begin
  if OpenDialog1.Execute then
  begin
    DataBase1.Connected:=false;
    DataBase1.AliasName:=combobox1.text;
    DataBase1.Connected:=true;
    if MessageDlg('請問要將資料表清空嗎?',
      mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    begin
       Query1.close;
       Query1.sql.text:='DELETE FROM ' combobox2.text;
       try
         Query1.execsql;
       except
         ShowMessage('資料表刪除失敗');
         exit;
       end;
    end;
    SaveDialog1.InitialDir:=ExtractFilePath(OpenDialog1.filename);
    AssignFile(f,OpenDialog1.filename);
    reSet(f);
    while not eof(f) do
    begin
      Readln(f,s);
      s:=s;
      ws:=s;
      s2:='INSERT INTO ' combobox2.text ' VALUES(';
      s4:='';
      for i:=1 to length(ws) do
      begin
        s3:=ws[i];
        if s3=#9 then
        begin
          s2:=s2 AnsiQuotedStr(s4,'''') ',';
          s4:='';
        end
        else
        begin
          s4:=s4 s3;
        end;
      end;
      s2:=s2 AnsiQuotedStr(s4,'''') ')';
      Query1.close;
      Query1.sql.text:=s2;
      caption:=s2;
      try
        Query1.execsql;
      except
        ShowMessage('Error:' s2);
      end;
    end;
    CloseFile(f);
  end;
  Query1.close;
end;
~悠遊法國號~
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-13 12:31:41 IP:218.72.xxx.xxx 未訂閱
感谢danielldf和yachanga的回复,这段时间杂七杂八的事太多,没有及时回应两位的回复,非常抱歉! 两位的方法应都可用,danielldf的方法比较有意思,不过yachanga的方法应更 符合我的要求,并已试成功了! 再次感谢两位及天使大大的范例! 發表人 - luowy651 於 2004/05/13 14:32:25
系統時間:2024-11-05 5:30:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!