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

请教如何抄上一笔录入的相似记录?

尚未結案
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-06 16:03:57 IP:218.18.xxx.xxx 未訂閱
我看见版主是这样写的,但为什么运行不了,delete这儿出错,还有dataset前面要不要具体写啊,比如query1.datasource.dataset这样啊?还请指教 var i:integer; s:string; v:Variant; begin with DataSet do begin //先取得所有欄位名稱, 並以;間隔 for i := 0 to (FieldCount-1) do s := s ';' Fields[i].FieldName; Delete(s, 1, 1); v:=DataSet[s]; //取得Current Record所有欄位值,存入v //會自動將v create成variant array append; DataSet[s]:=v; //寫入所有欄位 post; end; end;
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-06 16:29:35 IP:211.22.xxx.xxx 未訂閱
您好: use System 如果你用QUERY就要query1.datasource.dataset
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-06 16:36:55 IP:218.18.xxx.xxx 未訂閱
引言: 您好: use System 如果你用QUERY就要query1.datasource.dataset
为什么我在uses 中加上system,会出错,出错提示如下 [Error] purposhow.pas(8): Identifier redeclared: 'System' [Fatal Error] purposhow.pas(100): Could not compile used unit 'warehouse\finishedshow.pas'
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-06 16:37:09 IP:218.18.xxx.xxx 未訂閱
引言: 您好: use System 如果你用QUERY就要query1.datasource.dataset
为什么我在uses 中加上system,会出错,出错提示如下 [Error] purposhow.pas(8): Identifier redeclared: 'System' [Fatal Error] purposhow.pas(100): Could not compile used unit 'warehouse\finishedshow.pas'
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-06 16:37:23 IP:218.18.xxx.xxx 未訂閱
引言: 您好: use System 如果你用QUERY就要query1.datasource.dataset
为什么我在uses 中加上system,会出错,出错提示如下 [Error] purposhow.pas(8): Identifier redeclared: 'System' [Fatal Error] purposhow.pas(100): Could not compile used unit 'warehouse\finishedshow.pas'
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-06 16:56:06 IP:211.22.xxx.xxx 未訂閱
您好: 我說錯了,不需要USE SYSTEM 不知道你的錯誤訊息為何 小弟剛剛試可以
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-06 17:02:34 IP:218.18.xxx.xxx 未訂閱
引言: 您好: use System 如果你用QUERY就要query1.datasource.dataset
错误 信息为 [Error] purposhow.pas(8): Identifier redeclared: 'System' [Fatal Error] purposhow.pas(100): Could not compile used unit 'warehouse\finishedshow.pas'
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-01-06 17:14:11 IP:211.22.xxx.xxx 未訂閱
[/quote] 错误 信息为 [Error] purposhow.pas(8): Identifier redeclared: 'System' [Fatal Error] purposhow.pas(100): Could not compile used unit 'warehouse\finishedshow.pas' [/quote] 您好: 小弟剛剛說錯了,不需要USE SYSTEM 哪之前DELETE的錯誤訊息為何
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-01-06 17:26:03 IP:218.18.xxx.xxx 未訂閱
之前的信息是 too many actual parameters
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-01-06 17:35:40 IP:61.221.xxx.xxx 未訂閱
您好:
var i:integer;
s:string;
v:Variant;
begin
  with ADOQUery1.DataSource do
  begin
  //先取得所有欄位名稱, 並以;間隔
  for i := 0 to (dataset.FieldCount-1) do
    s := s   ';'   dataset.Fields[i].FieldName;
  Delete(s, 1, 1);
  v:=DataSet[s]; //取得Current Record所有欄位值,存入v
  //會自動將v create成variant array
  dataset.append;
  DataSet[s]:=v; //寫入所有欄位
  dataset.post;
  end;
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-01-07 15:17:39 IP:218.18.xxx.xxx 未訂閱
terrychen 您好: 照 你上面所写也还是不行,运行不了。 如果我的ADOquery中有10条记录,那样能同时新增吗?
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-01-07 16:05:13 IP:61.221.xxx.xxx 未訂閱
您好: 老實說,小弟也沒用過那方法 只是試一下,測試了一下,恩,真的不行 希望懂得此法的前輩為你指導了 以後小弟會謹言慎行,若有浪費時間請見諒
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-01-07 17:22:52 IP:218.18.xxx.xxx 未訂閱
呵。。有心了,集思广益嘛
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-01-08 16:32:23 IP:210.65.xxx.xxx 未訂閱
Hi:    
引言:
var i:integer;
s:string;
v:Variant;
begin
  with ADOQUery1.DataSource do
  begin
  //先取得所有欄位名稱, 並以;間隔
  for i := 0 to (dataset.FieldCount-1) do
    s := s   ';'   dataset.Fields[i].FieldName;
  Delete(s, 1, 1);
  v:=DataSet[s]; //取得Current Record所有欄位值,存入v
  //會自動將v create成variant array
  dataset.append;
  DataSet[s]:=v; //寫入所有欄位
  dataset.post;
  end;
terrychen 別氣餒,我測了一下,調整如下後,可正確執行複製一筆記錄
procedure TForm1.Button16Click(Sender: TObject);
var
    I : Integer;
    S : String;
    V : Variant;
begin
  //先取得所有欄位名稱, 並以;間隔
  for I := 0 to (ADOTable1.FieldCount-1) do
    S := S   ';'   ADOTable1.Fields[i].FieldName;
  Delete(S, 1, 1);
  V := ADOTable1[S]; //取得Current Record所有欄位值,存入v
  //會自動將v create成variant array
  ADOTable1.Append;
  ADOTable1[S] := V; //寫入所有欄位
  ADOTable1.Post;
end;
若有多筆記錄須一次新增,使用迴圈是一種方法,也可以以下語法來完成
 
INSERT INTO TABLE1
       (FIELD1,FIELD2,...)
SELECT  FIELD1,FIELD2,...
FROM    TABLE2
WHERE   WHERE_STATEMENT
-------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#15 引用回覆 回覆 發表時間:2004-01-08 17:23:34 IP:211.22.xxx.xxx 未訂閱
感謝Fishman的鼓勵 小弟會加油的!!︿︿....
系統時間:2024-09-14 8:23:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!