Вверх ↑
Разработчик
Ответов: 26067
Рейтинг: 2121
#1: 2011-03-10 19:31:06 ЛС | профиль | цитата
Assasin писал(а):
Век живи - век учись, не знал такого

А ты что, в моих компонентах такого не встречал, значит, плохо изучал код компонентов
------------ Дoбавленo в 19.30:
Вот, к примеру, кусок из таблицы



TRY
case dc.Data_type of
data_null: exit;
end;
if Assigned(PData(Control.LVItemData[Row])) then
begin
fd := PData(Control.LVItemData[Row]);
FreeData(fd);
end
else
begin
new(fd);
FillChar(fd^, sizeof(TData), 0);
end;
CopyData(fd, @dc);
Control.LVItemData[Row] := cardinal(fd);
FINALLY
FreeData(s);
END;

или из DS_ODBC


        Buffer := AllocMem( FD.ColumnSize + 4 );
TRY
R := SQLGetData( fSession, i + 1, SQL_C_DEFAULT, Buffer, FD.ColumnSize, @FD.ColumnSize );
if ((R = SQL_SUCCESS) or (R = SQL_SUCCESS_WITH_INFO)) and (FD.ColumnSize <> SQL_NULL_DATA) then
begin
St := NewMemoryStream;
St.Write( Buffer^, FD.ColumnSize );
St.Position := 0;
if scalar then
dtStream(ndt, St)
else
dtString(ndt, 'Binary');
free_and_nil(St);
end; { If }
FINALLY
FreeMem(Buffer);
END;
карма: 22

0