Форум: "Начинающим";
Текущий архив: 2018.04.15;
Скачать: [xml.tar.bz2];
ВнизНаследник TDataSet и TField.IsNull Найти похожие ветки
← →
Token (2016-04-20 11:57) [0]Создал наследника TDataSet для определенного формата файлов.
При вызове функции у поля Field.IsNull в функцию TDataSet.GetFieldData(Field: TField; Buffer: Pointer): Boolean; передается Buffer=nil. Как правильно на это отреагировать вернуть результат false; или true, но не заполняя buffer. Или может у меня где-то в другом месте сидит ошибка(что-то не перекрыл, не дописал)?..
Так-то вроде работает все правильно, файлы читаются и пишутся через этот класс
← →
sniknik © (2016-04-20 12:50) [1]> Как правильно на это отреагировать вернуть результат false; или true
посмотреть как уже у других сделано, в "генофонд", а он при значении null в AsBoolean возвращает false.
← →
Token (2016-04-20 13:18) [2]В том-то и проблема, что GetFieldData скрыта за драйвером БД, не посмотреть как проводится проверка на Buffer=nil
← →
Token (2016-04-20 13:25) [3]Ступил, начал в глубь рыть, а решение на поверхности
function TField.GetIsNull: Boolean;
begin
Result := not GetData(TValueBuffer(nil));
end;
← →
Token (2016-04-20 13:28) [4]Т.е. если даже некуда писать данные, но они есть надо возвращать true.
← →
имя (2016-04-21 14:53) [5]Удалено модератором
← →
имя (2016-04-21 15:05) [6]Удалено модератором
← →
имя (2016-04-21 15:32) [7]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.04.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c