Я использую BDE и плоские таблицы. У меня есть две одинаковые таблицы, tblOne
и tblTwo
. Я пытаюсь скопировать данные из одной таблицы в другую. Не вся БД, а только одна конкретная запись, использующая это:
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...
Проходя через это, все значения являются «нулевыми» для таблицы «Из».
После сообщения я получаю пустую запись, добавленную в tblTo
. Неудивительно, что все значения равны нулю. :)
Где я ошибаюсь при копировании данных? Не доходит до функции копирования.
Я был в этом в течение нескольких часов и не могу заставить его работать. Наверное, я упускаю из виду что-то простое. Я добавил параметр «var», чтобы увидеть, имеет ли это какое-то значение, но это не так.
Да, кстати, я начинаю цикл с «1», а не с «0», так как первое поле в обоих файлах — AutoInc
.
if tblTo.FindField(tblFrom.Fields[i].FieldName) <> nil then tblTo.FieldByName(tblFrom.Fields[i].FieldName).Value := tblFrom.Fields[i].Value;
- так будет точнее. - person Abelisto   schedule 18.03.2013