Форум: "Базы";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизGetCurrentRecord(PChar), обратное преобразование Найти похожие ветки
← →
XAdmin (2005-01-09 10:01) [0]Есть данные в виде Pchar полученные с помощью метода GetCurrentRecord (возвращает запись целиком).
var
P: PChar;
begin
GetMem(P, FIBDataSet.RecordSize);
FIBDataSet.GetCurrentRecord(P)
Как из переменной P выделить конкретные поля?
← →
sniknik © (2005-01-09 12:28) [1]элементарно... расчитываеш по размерам полей до записи начало поля и копируеш кусок равный размеру поля, преобразовываеш к нужному типу (если есть нужда)... обламываешся с полями типа текст, блов, и аналогичными. ;о)) бо нет в них данных, в рекордсете.
копируеш (выделяеш) так move(P[расчитаная точка начала записи], буфер приемник, размер записи)
в общем все так же как и сам копмонент делает.
чем не подходит fieldbyname(?)/fields[?] ???
← →
DSKalugin © (2005-01-10 15:14) [2]Все гениальное просто
var Nafiga: Variant;
fi,fc:Byte;
begin
fc:=Table666.FieldCount-1;
//объявляю переменную для хранения значений полей записи
Nafiga:=VarArrayCreate([0,fc], varVariant);
//копирую запись в переменную
for fi:=0 to fc do Nafiga[fi]:=Table666.fields[fi].Value;
//обратное действие
Table666.Insert/Edit;
for fi:=0 to fc do Table666.fields[fi].Value:=Nafiga[fi];
Table666.Post;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c