簡體   English   中英

將記錄從一個表復制到另一個表不起作用

[英]Copy record from one Table to another not working

我正在使用BDE和平面表。 我有兩個相同的表, tblOnetblTwo我正在嘗試將數據從一個表復制到另一個表。 不是整個數據庫,而是一個使用此的特定記錄:

function Tdm.CopyRecord(var tblFrom,tblTo : TTable) : Boolean;
var
  i : Integer;
begin
  Result:=False;
  try
    tblTo.Insert;
    for i:=1 to tblFrom.FieldCount-1 do
    begin
      if tblFrom.Fields[i].FieldName = tblTo.Fields[i].FieldName then
        tblTo.Fields[i].Value:=tblFrom.Fields[i].Value;
    end;
    tblTo.Post;
    Result:=True;
  finally
  end;
end;

if CopyRecord(tblOne,tblTwo) then...

逐步執行此操作,對於“ From”表,所有值均為“ Null”。

發布后,我得到一個空白記錄添加到tblTo 所有值都為零的毫不奇怪。 :)

復制數據時哪里出問題了? 它不能用於復制功能。

我在這里待了幾個小時,無法使其正常工作。 我可能忽略了一些簡單的事情。 我添加了“ var”參數,以查看是否有什么不同,但沒有。

哦, AutoInc ,我正在從“ 1”而不是“ 0”開始循環,因為兩個文件中的第一個字段都是AutoInc

這是我的方法:

function CopyRecord(tblFrom, tblTo: TTable; const StartIndex: Integer=0): Boolean;
var
  i: Integer;
  FieldFrom, FieldTo: TField;
begin
  Result := False;
  for i := StartIndex to tblFrom.FieldCount - 1 do
  begin
    FieldFrom := tblFrom.Fields[i];
    FieldTo := tblTo.FindField(FieldFrom.FieldName);
    if Assigned(FieldTo) then
    begin
      FieldTo.Value := FieldFrom.Value;
      Result := True;
    end;
  end;
end;

我不會用tblTo.Insert / tblTo.Post 里面 CopyRecord方法。 而是在外部使用它,例如:

tblTwo.Append;
if CopyRecord(tblOne, tblTwo, 1) then
  tblTwo.Post
else
  tblTwo.Cancel;

也可以在“ Edit模式下重新使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM