Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2019, 12:19   #1
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию sGroupBox.Checked TINYINT(1) - Почему записывает "-1"?

Мужики, подскажите, как выкрутиться?
Есть компонент sGroupBox.Checked - в базу записывается в поле с типом TINYINT(1).
Вот задача: Записывает как ("-1" - True, "0" - False), соответственно при считывании из базы в любом случаем sGroupBox.Checked - False.
Блин, почему -1 это True?

Если в базе руками проставлять 0 или 1 - то тогда считывается всё правильно.

Я понимаю, что можно выкрутиться, написать условия для правильного перехвата, но почему такие грабли?

Последний раз редактировалось iskurt; 18.04.2019 в 12:21.
iskurt вне форума Ответить с цитированием
Старый 18.04.2019, 12:21   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А как записываешь?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.04.2019, 12:23   #3
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Код:
var rabota : Bool;
...
SQL.Add('rabota = :rabota,');
Parameters.ParamByName('rabota').Value := rabota;
iskurt вне форума Ответить с цитированием
Старый 18.04.2019, 12:33   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

BOOL - почему не Boolean?
Код:
Parameters.ParamByName('rabota').Value := Byte(rabota);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.04.2019, 12:43   #5
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
BOOL - почему не Boolean?
Видимо я еще мало знаю, но при попытке установить Boolen - ошибка, "Незадекларированные идентификатор Boolen"
А на счет byte, щас попробую, но я даже и не знал этого... признаю
iskurt вне форума Ответить с цитированием
Старый 18.04.2019, 12:45   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Boolen - ошибка
Boolean
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.04.2019, 12:45   #7
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Parameters.ParamByName('rabota').Va lue := Byte(rabota);
Out of Range - блин, я нахожу идиотский тип TINYINT(1).
iskurt вне форума Ответить с цитированием
Старый 18.04.2019, 12:48   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Boolean
Цитата:
я нахожу идиотский тип
не более идиотский чем любой другой тип ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.04.2019, 12:48   #9
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Boolean
Ах да, очепятка... .без разницы... всё равно записывает -1
Снимок.PNG
iskurt вне форума Ответить с цитированием
Старый 18.04.2019, 12:56   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Не знаю что пишешь. Просто для Bool ord(True)=-1, а для Boolean ord(True)=1. Для Bool тот Byte и выдал ошибку приведения типа. Ord(False)=0 и для BOOL, и для Boolean
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" Бахтиёр1916 Windows 1 05.04.2017 12:53
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
Почему при условии "false", трассировка входит в блок "true" KBO Помощь студентам 7 20.03.2016 21:18
Как избежать цепи "CheckBox.Checked" -> CheckBoxClick Ship_1 Общие вопросы Delphi 7 18.12.2015 11:23
querySelectorAll('[type="checkbox"]:checked') не работает в ИЕ Maxx JavaScript, Ajax 3 03.12.2015 12:40