adodataset.getcurrentrecord не работает
var
i:integer;
begin
adodataset2.open;
adodataset2.first;
for i:=1 to adodataset2.recordcount do
begin
adodataset1.recno:=i;
adodataset1.append;
adodataset2.getcurrentrecord(adodataset1.activebuffer);
adodataset1.post;
adodataset2.next;
end;
end;
это пример из интернета
ругается - Не удается вставить пустую строку. Необходим хотябы один столбец значений.
база Access ,в таблицах есть данные. Может какие настройки таблиц?
спасибо
что-то мне подсказывает, что в буфер ничего не попадёт, пока датасет в состоянии append/insert/edit... хотя, могу ошибаться....
var
i:integer;
begin
adodataset2.open;
adodataset1.open;
adodataset2.first;
adodataset1.first;
for i:=1 to adodataset2.recordcount do
begin
adodataset2.getcurrentrecord(adodataset1.activebuffer);
adodataset2.next;
adodataset1.next;
end;
adodataset1.Edit;
adodataset2.Edit;
adodataset1.Post;
adodataset2.Post;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
adodataset2.open;
adodataset1.open;
adodataset2.first;
adodataset1.first;
for i:=1 to adodataset2.recordcount do
begin
adodataset2.getcurrentrecord(adodataset1.activebuffer);
adodataset2.next;
adodataset1.next;
end;
adodataset1.Edit;
adodataset2.Edit;
adodataset1.Post;
adodataset2.Post;
end;
ругань исчезла
но в таблицах содержимое не меняется
???
я думаю, в последнем случае нет нужды над dataset2 производить манипуляции Edit-Post....
но почему не работает это?
Move(Table1.ActiveBuffer^,Table2.ActiveBuffer^,Table1.RecordSize);
в таблице ничего не меняется
Move(Table1.ActiveBuffer^,Table2.ActiveBuffer^,Table1.RecordSize); ?
ЕСТЬ нужда корректировать запись вне таблицы а потом ее записывать обратно
как лучше всего?
а как скопировать запись из одной таблицы в другую (структура записи очень длинная)?