Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Проверить значение поля


Автор: evgeniyr 18.7.2005, 08:18
Здравствуйте!
Есть таблица, в ней поле id, тип Integer, поле не ключевое и может ничего не содержать. Как проверить, что id не содержит целочисленного значения?
if Data.FieldByName('id').AsInteger = ???? then ....
Заранее благодарен.

Автор: Bes 18.7.2005, 08:30
Может выполнить запрос для этой записи?
select count(*) as id_null from MyTab where id is null

Автор: ~FoX~ 18.7.2005, 08:30
Я человек ленивый, по этому проверяю так:
Код

if Data.FieldByName('id').AsInteger = 0 then .......;

Это конечно не совсем хорошо, но проще чем остальное

Автор: evgeniyr 18.7.2005, 08:38
>Может выполнить запрос для этой записи?
>select count(*) as id_null from MyTab where id is null
Это не подходит, сама запись тоже нужна, просто поле id не будет использоваться.

>if Data.FieldByName('id').AsInteger = 0 then .......;
Ноль-это число и уже используется.

Мне нужно отловить null втаблице.
if Data.FieldByName('id').AsInteger = nil then .......; не прокатывает.

Автор: ~FoX~ 18.7.2005, 08:39
Код

if Trim(Data.FieldByName('id').AsString) = '' then

Автор: Bes 18.7.2005, 08:45
Цитата
Это не подходит, сама запись тоже нужна, просто поле id не будет использоваться.

дак е мое одно другому не помеха проверяй одним компонентом выводи другим

Автор: evgeniyr 18.7.2005, 08:53
> if Trim(Data.FieldByName('id').AsString) = '' then
Тип поля Integer, был бы String - вопросов не задавал бы...

> дак е мое одно другому не помеха проверяй одним компонентом выводи другим
Это как? Мне просто надо знать, что в текущей записи, поле id не содержит целочисленного значения.

Автор: Alex 18.7.2005, 09:12
Цитата
Я человек ленивый

Я тогда совсем лентяй smile
Код

  Data.FieldByName('id').IsNull then ...

Автор: ~FoX~ 18.7.2005, 09:20
Alex
Это я не проверил перед отправкой месагу smile

Цитата(evgeniyr @ 18.7.2005, 09:53)
Тип поля Integer, был бы String - вопросов не задавал бы...

Какая раздница, ввел интеджер-вренул стринг, преобразованием типов пусть машина занимается, она железная. smile

Автор: Bes 18.7.2005, 09:23
2Alex: респект если это действительно работает

Автор: evgeniyr 18.7.2005, 09:48
Спасибо, Alex, все работает.

Автор: Alex 18.7.2005, 09:56
Цитата(Bes @ 18.7.2005, 10:23)
2Alex: респект если это действительно работает

Что значит действительно, работает, это вообще-то единственный 100% гарантированный способ проверки, т.к. те, что вы предлагаете, не сработают в большинстве случаях (все зависит от настроек модуля variants и от значений в базе).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)