
Модератор: Модераторы
2. Считываем из потока информацию о структуре таблицы.
3. Создаём динамически в наследнике TDataSet аналогичную структуру.
FUNCTION BTRVID(
operation : WORD;
VAR positionBlock;
VAR dataBuffer;
VAR dataLen : WORD;
VAR keyBuffer;
keyNumber : SMALLINT;
VAR clientID ) : SMALLINT;
bloodlines писал(а):Не думаю, что вместо dataBuffer можно поставить например MemDataset1.Fields...
1. В dataBuffer ставишь указатель на начало буфера.
bloodlines писал(а):VAR dataBuffer
VAR dataBuffer
3. Читаешь из dataBuffer ... байт, которые считал из пункта 2. При необходимости приводишь к нужному типу. Тип можно считать из п. 2
var P: Pointer
...
GetMem(P, размер_структуры);
...
var P: Pointer
...
GetMem(P, размер_структуры);
...
OPERHEAD_INDEX7 = packed record
appIsn : longint;
appName : array[0..8] of char;
end;
var
OperHeadIndex7 : OPERHEAD_INDEX7; {индекс номер 7}
OperheadIndex0.appIsn := 8 AsInteger; {присвоение параметров поиска}
fillchar(OperheadRecord , SizeOf(OperheadRecord), #0);
dataLen := sizeof(OPERHEAD_STRUCT);
status := BTRVID(B_GET_EQUAL, {системная константа}
PosBlock, {системная}
OperheadRecord, {сюда будет возвращен результат поиска}
dataLen, {см.выше}
OperheadIndex7, {см.выше}
7, {номер индеска - см.выше}
client); {системная}
OperheadIndex0.appIsn := 8 AsInteger;
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6