![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование AppendRecord [D7, MSSQL]
Patrick © (2003-04-09 15:39:00)Есть фрагмент программы
var ind : integer;
Varray : array of TVarRec;
begin
MainDataModule.qMarks.Edit;
MainDataModule.qMarks.FieldByName("ReportSort").AsInteger := MaxMark + 1;
MainDataModule.qMarks.Post;
Inc(MaxMark);
for ind := 0 to MainDataModule.qMarks.FieldCount - 1 do
begin
SetLength( Varray, ind + 1);
New(Varray[ind].VVariant);
Varray[ind].VVariant^ := MainDataModule.qMarks.Fields[ind].asVariant;
end;
MainDataModule.qMarks.Delete;
MainDataModule.qMarks.AppendRecord(Varray);
Суть такова
Изменяю запись в Query, затем запоминаю ее в массив, удаляю ее, и делаю AppendRecord, но что-то видно напутал и во вновь введенную запись помещаются неверные значения из массива, точнее видимо не тот байт из структуры TVarRec,посоветуйте что-нибудь,please.
Patrick (2003-04-09 16:21:00) [1]Просто хотел попробовать именно AppendRecord, по типу считал запись в массив, а затем в нужный момент добавил, или вставил или изменил.
Patrick (2003-04-09 16:17:00) [2]Я понимаю, что подобное можно сделать более простым способом, но мне необходимо тасовать записи внутри DataSet, при всем при том не делая ApplyUpdates, может есть какие-либо варианты?
Жук (2003-04-09 16:15:00) [3]Что-то вроде этого должно быть :
> MainDataModule.qMarks.Delete;
MainDataModule.qMarks.Append;
for ind := 0 to MainDataModule.qMarks.FieldCount - 1 do
MainDataModule.qMarks.Fields[ind].asVariant:=Varray[ind].VVariant^;
MainDataModule.qMarks.Post;
Жук (2003-04-09 16:00:00) [4]А зачем такие сложности ?