Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.09.2014
Сообщений: 4

Ошибка Could not convert variant of type (Null) into type (String)

10.09.2014, 15:56. Показов 1714. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure tMain.TLichDataFilterRecord(DataSet: TDataSet;
 
var Accept: Boolean);
 
var
 
s : String;
 
begin
 
 
 
s := Copy(DataSet['Фамилия'], 1, Length(ed)); 
 
 
Accept := s = ed;
 
end;

ВЫДАЕТ ОШИБКУ В ЭТОЙ СТРОКЕ
s := Copy(DataSet['Фамилия'], 1, Length(ed));

ПОМОГИТЕ ПЛИЗ!!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.09.2014, 15:56
Ответы с готовыми решениями:

Ошибка: Could not convert variant of type (Null) into type (String) - Фильтрация
В polycom200U1GTADOQuery1 свойстве Events - OnFilterRecord пишу procedure TDataModule2.polycom200U1GTADOQuery1FilterRecord( ...

Ошибка could not convert variant of type (null) into type (String)
Здравствуйте. У меня появляется ошибка could not convert variant of type (null) into type (String) Вот код unit resultUnit; ...

Ошибка Could not convert variant of type (Null) into type (String)
У меня вопрос по моему проекту...!) Если кто знает помогите, в свойствах компонента DBGrid --> OnDrowColumnCell --> пишу код ...

8
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
10.09.2014, 17:04
Если в поле нет данных (NULL) или датасет не открыт или открыт, но не содержит данных (DataSet.Eof),
то будет генерироваться эта ошибка.
0
Native x86
Эксперт Hardware
 Аватар для quwy
6857 / 3790 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
10.09.2014, 17:38
Цитата Сообщение от Скандербег Посмотреть сообщение
открыт, но не содержит данных (DataSet.Eof)
DataSet.IsEmpty
Eof -- это признак конца набора, данных при этом может быть сколько угодно.

apple25,
Delphi
1
2
3
4
if DataSet.FieldByName('Фамилия').IsNull then
  s:= ''
else
  s := Copy(DataSet.FieldByName('Фамилия').AsString, 1, Length(ed));
1
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
10.09.2014, 17:58
quwy, речь то идет об открытии датасета, сразу после чего и проверяется EOF,
а в этом случае, используя Eof, точно можем знать есть ли данные в датасете вообще. Это первое.
Второе, если посмотрите реализацию IsEmpty, то думаю, сильно удивитесь, поскольку
эта функция проверяет номер активной записи на то что он больше или равен количеству записей.
А это и есть Eof только с извращением. К тому же в некоторых датасетах IsEmpty просто не работает,
из-за того что общее количество записей может быть неизвестно.
ТС не открыл нам тайну с какой СУБД имеет дело, поэтому рекомендовать IsEmpty я бы просто не рискнул.
0
Native x86
Эксперт Hardware
 Аватар для quwy
6857 / 3790 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
10.09.2014, 18:16
Цитата Сообщение от Скандербег Посмотреть сообщение
речь то идет об открытии датасета, сразу после чего и проверяется EOF
Из кода ТС это никак не следует. Тем более, что обработчик OnFilterRecord вызывается только если в датасете есть хоть одна запись, и поэтому проверка на заполненность просто лишена смысла (я ее и не добавлял в условие).

Цитата Сообщение от Скандербег Посмотреть сообщение
Второе, если посмотрите реализацию IsEmpty, то думаю, сильно удивитесь, поскольку
эта функция проверяет номер активной записи на то что он больше или равен количеству записей.
И что? Существуют датасеты, которые вообще не знают своего количества записей. В данном случае это просто условие, а как поля FActiveRecord и FRecordCount заполняются данным конкретным наследником TDataSet -- не важно.
0
0 / 0 / 0
Регистрация: 10.09.2014
Сообщений: 4
11.09.2014, 00:11  [ТС]
quwy, спасибо, ошибка пропала, НО теперь то для чего это предназначалось не работает. Хотел сделать фильтрацию в БД, по полю "Фамилия".
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TtMain.TLichDataFilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
var
  s: String;
begin
 
if DataSet.FieldByName('Фамилия').IsNull then
  s:= ''
else
  s := Copy(DataSet.FieldByName('Фамилия').AsString, 1, Length(ed));
 
  Accept := s = ed;
end;
Delphi
1
2
3
4
5
6
7
8
9
procedure TtMain.Edit1Change(Sender: TObject);
begin
  if Edit1.Text <> '' then begin
    tMain.TLichData.Filtered := False;
    tMain.ed := Edit1.Text;
    tMain.TLichData.Filtered := True;
  end
  else tMain.TLichData.Filtered := False;
end;
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
11.09.2014, 01:59
Цитата Сообщение от apple25 Посмотреть сообщение
ошибка пропала, НО теперь то для чего это предназначалось не работает.
Что значит не работает? И что есть "то для чего это предназначалось"?
0
0 / 0 / 0
Регистрация: 10.09.2014
Сообщений: 4
11.09.2014, 08:37  [ТС]
northener, фильтрация не работает
0
Native x86
Эксперт Hardware
 Аватар для quwy
6857 / 3790 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
11.09.2014, 12:17
Цитата Сообщение от apple25 Посмотреть сообщение
фильтрация не работает
Должно работать. Регистр символов в ed и в датасете совпадает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.09.2014, 12:17
Помогаю со студенческими работами здесь

Ошибка в коде could not convert variant of type null into type integer
var i,j:byte; n:string; begin form7.ComboBox1.Enabled:=false; with dm.T_sub do begin Open; while...

Ошибка Could not convert variant of type (string) into type, помагите разобраться
Создал базу данных в Access там 4 таблицы, в делфи на форме у меня помещено 2 ве таблицы, одна таблица отображается через ADOTable, а...

Ошибка: could not convert variant of type (string) into type (date)
Добрый день! Есть LookupComboBox подключеный к БД, в нем выбирается человек и инфа о нем отображается в диалоговом окне( вызываемая...

Ошибка "Could convert variant of type (Null) into type (oleStr)"
Пишу программу для курсовой работы, программка на тему АРМ Администратора анти-кафе, выскакивает ошибка Could convert variant of type...

Ошибка: "Could not convert variant of type (Null) into type (OleStr)"
Здравствуйте, помогите с такой ошибкой: при выборе ячейки в DBGrid вылетает ошибка как во вложении. Сам участок кода такой: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru