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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2011, 16:40   #1
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию Проблемы при записи и считыванияиз базы данных

Имеется 7 DbChexBox. Значения их записываю в ADO в поля
"Режим_раб1" - "Режим_раб7" соответственно. А как сделать, чтобы данные записывались в одно поле. Если я их значения записываю в одно поле в формате Например, true,true,false,true,false,false,tr ue или (понедельник, вторник, среда, четверг, пятница, суббота, воскресенье) То не могу потом разъеденить.
Код:
if MainForm.ADOTable1.Modified then
begin
 MainForm.ADOTable1.Edit;

 ADOTable1.FieldByName('Режим_раб1').AsString:= RzCheckBox1.Checked;
 ADOTable1.FieldByName('Режим_раб2').AsString:= RzCheckBox2.Checked;
 ADOTable1.FieldByName('Режим_раб3').AsString:= RzCheckBox3.Checked;
 ADOTable1.FieldByName('Режим_раб4').AsString:= RzCheckBox4.Checked;
  ADOTable1.FieldByName('Режим_раб5').AsString:= RzCheckBox5.Checked;
 ADOTable1.FieldByName('Режим_раб6').AsString:= RzCheckBox6.Checked;
 ADOTable1.FieldByName('Режим_раб7').AsString:= RzCheckBox7.Checked;

  MainForm.ADOTable1.Post;
 end;

Последний раз редактировалось Aleksandr; 14.06.2011 в 16:50.
Aleksandr вне форума Ответить с цитированием
Старый 14.06.2011, 17:19   #2
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

а зачем их записывать в одно поле?
это неправильно, согласно первой нормальной форме(любое поле любой записи хранит только одно значение)...

а что вообще Вы хотите сделать?
maLoy*508 вне форума Ответить с цитированием
Старый 14.06.2011, 17:41   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Можно сделать одно поле Режим_раб типа INTEGER и хранить сумму степеней 2 от 0 до 6 (для понед, вторн,...,воскр). Если, например, вторник и четверг, то записать в поле 2+8=10.
Определение в программе
Код:
if ADOTable1.FieldByName('Режим_раб').AsInteger and 1<>0 then ... //понедельник
if ADOTable1.FieldByName('Режим_раб').AsInteger and 4<>0 then ... //среда
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 14.06.2011 в 17:52.
Аватар вне форума Ответить с цитированием
Старый 14.06.2011, 17:52   #4
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

2 Аватар:
на мой взгляд правильнее будет использовать промежуточную таблицу ...
имхо
maLoy*508 вне форума Ответить с цитированием
Старый 14.06.2011, 17:57   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от maLoy*508 Посмотреть сообщение
2 Аватар:
на мой взгляд правильнее будет использовать промежуточную таблицу ...
имхо
И почему? Используем Integer (и Smallint подойдет) поле c бинарным содержанием для небольшого фиксированного множества
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.06.2011, 23:52   #6
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Цитата:
И почему?
сугубо мое личное мнение...
maLoy*508 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повреждение данных при записи в середину бинарного файла Aerial Общие вопросы C/C++ 2 01.12.2011 19:32
Нормализация Базы Данных и проблемы с формами Rain_11 Microsoft Office Access 0 26.02.2011 14:47
Непонятная ошибка при попытке отобразить содержимое таблица базы данных в компоненте DBGrid. hk47 БД в Delphi 6 17.04.2010 08:05
Проблема с типом данных при записи на сервер Swatch Microsoft Office Access 1 09.04.2010 19:03
Как выбрать при помощи SQL записи из набора данных pris БД в Delphi 4 22.05.2007 11:24