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

Oracle9i與ACCESS的資料交換

尚未結案
NO.5
初階會員


發表:18
回覆:35
積分:25
註冊:2005-02-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-26 13:45:09 IP:210.64.xxx.xxx 未訂閱
請問各位先進: 若要將Oracle中的Table A的數筆資料,轉入ACCESS中的Table B內,弟目前的做法是使用BDE的Query元件將Record自Oracle取出後,利用ADO元件的Query元件一筆一筆的塞給ACCESS,反之亦然. 請問有其他更好的方法嗎?謝謝.
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-26 14:37:50 IP:60.248.xxx.xxx 未訂閱
用 SQL 的 INSERT INTO 應該是又快又方便的方法
NO.5
初階會員


發表:18
回覆:35
積分:25
註冊:2005-02-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-26 14:57:33 IP:210.64.xxx.xxx 未訂閱
引言:用 SQL 的 INSERT INTO 應該是又快又方便的方法
您好: 大概我的表達不夠明確,目前的問題是,在不同資料庫的不同Table間交換資料,除了上述土法煉鋼的方法之外,有沒有其他更有效率的寫法?譬如都用ADO元件,或都用BDE元件,那麼您所提的"INSERT INTO... SELECT... FROM..."的方式大概就可以被使用.
NO.5
初階會員


發表:18
回覆:35
積分:25
註冊:2005-02-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-26 17:58:57 IP:210.64.xxx.xxx 未訂閱
請問各位先進,執行如下的程式碼:
type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection; //ADO連結ACCESS
    Database1: TDatabase;           //BDE連結Oracle
    Query1: TQuery;
    ADOQuery1: TADOQuery;
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.dfm}    procedure TForm1.FormCreate(Sender: TObject);
begin
   WITH Query1 DO
   BEGIN
      SQL.Add('SELECT USER_ID, USER_NAME,USER_PASSWORD,');
      SQL.Add('       USER_SEC,ROLE_CODE,RT_WORK_SEC');
      SQL.Add('  FROM Tab1');
      Prepare;
   END;
   WITH ADOQuery1 DO
   BEGIN
      SQL.Add('INSERT INTO Tab2');
      SQL.Add('VALUES(:ID, :NM,  :PW,');
      SQL.Add('       :SEC,:R_CD,:RTSEC)');
      Parameters.ParamByName('ID').DataType := ftString;
      Parameters.ParamByName('NM').DataType := ftString;
      Parameters.ParamByName('PW').DataType := ftString;
      Parameters.ParamByName('SEC').DataType := ftString;
      Parameters.ParamByName('R_CD').DataType := ftString;
      Parameters.ParamByName('RTSEC').DataType := ftString;
   END;
end;    procedure TForm1.FormActivate(Sender: TObject);
VAR
   S1,
   S2,
   S3,
   S4,
   S5,
   S6: STRING;
begin
   WITH Query1 DO
   BEGIN
      Open;
      TRY
         First;
         WHILE NOT EOF DO
         BEGIN
            S1 := FieldByName('USER_ID').AsString;
            S2 := FieldByName('USER_NAME').AsString;
            S3 := FieldByName('USER_PASSWORD').AsString;
            S4 := FieldByName('USER_SEC').AsString;
            S5 := FieldByName('ROLE_CODE').AsString;
            S6 := FieldByName('RT_WORK_SEC').AsString;
            ADOQuery1.Close;
            ADOQuery1.Parameters.ParamByName('ID').Value := S1;
            ADOQuery1.Parameters.ParamByName('NM').Value := S2;
            ADOQuery1.Parameters.ParamByName('PW').Value := S3;
            ADOQuery1.Parameters.ParamByName('SEC').Value := S4;
            ADOQuery1.Parameters.ParamByName('R_CD').Value := S5;
            ADOQuery1.Parameters.ParamByName('RTSEC').Value := S6;
            ADOQuery1.ExecSQL;
            SHOWMESSAGE('II');
            Next;
         END;
      EXCEPT
         EXIT;
      END;
   END;
end;
出現這個錯誤 所有的Field屬性都是String,請問如何解決? 謝謝.
系統時間:2024-07-01 2:34:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!