|
|
От: |
mrhru
|
|
| Дата: | 28.04.03 09:40 | ||
| Оценка: | |||
после препарирования, в SqlVar^.sqllen храниться максимальная длина поля!!!SM>SQL_VARYING:
SM>SM> begin SM> TempStr := VarToStr(Value); SM> if SqlVar^.sqllen > length(TempStr) then SM> Len := length(TempStr) SM> else Len := SqlVar^.sqllen;
SqlVar^.sqllen := length(TempStr) + 2;SM> ReallocMem(SqlVar.sqldata, SqlVar^.sqllen + 2); SM> PShort(SqlVar^.sqldata)^ := SqlVar^.sqllen; SM> StrLCopy(SqlVar^.sqldata + 2, PChar(TempStr), Len); SM> end; SM> SQL_TEXT: SM> begin SM> TempStr := VarToStr(Value); SM> if SqlVar^.sqllen > length(TempStr) then SM> Len := Length(TempStr) SM> else Len := SqlVar^.sqllen;
SqlVar^.sqllen := length(TempStr); // здесь надо надо указать длину самой строкиИмхоSM> ReallocMem(SqlVar^.sqldata, SqlVar^.sqllen + 1); SM> StrLCopy(SqlVar^.sqldata, Pchar(TempStr), Len); SM> end; SM>