|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
|
MS SQL Добавление записей в таблицу из CheckListBox20.10.2019, 21:03. Показов 3657. Ответов 25
Метки нет (Все метки)
На форме расположены 4 dbcomboboxeh и 2 checklistbox
Как добавить все записи в таблицу, где бы присутствовали все значения из checklistbox1 и checklistbox2 Я так понимаю если выбрано 2 значения в checklistbox1 и 3 значения в checklistbox2, должно получится 6 записей в таблице, где dbcomboboxEhЫ имели б одинаковые значения полей
0
|
|
| 20.10.2019, 21:03 | |
|
Ответы с готовыми решениями:
25
Из каждого CheckListBox вставить определённое количество записей в таблицу MSWORD Добавление записей в таблицу и связанную с ней таблицу, с учётом связи Добавление записей в таблицу |
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 20.10.2019, 22:35 | |
|
Вы ничего не сказали о свое таблице, а кофе у меня для гадания кончился
0
|
|
|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
|
| 20.10.2019, 23:04 [ТС] | |
|
В таблице есть поле статус типа bit, которое я хочу обновлять из DBGridEh нажатием checkbox
0
|
|
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 20.10.2019, 23:09 | |
|
Бит значит одно значение, а полей 6.
Решение: Либо делайте поле типа байт и используйте булеву арифметику для хранения своих 6 значений в одном поле, либо заводите 6 полей в таблице, либо создавайте дополнительную таблицу связанную по главному ключу с основной и пишите туда 6 записей для каждого из полей.
0
|
|
|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
||
| 20.10.2019, 23:28 [ТС] | ||
|
В таблице есть 6 полей типа int и одно поле bit (по умолчанию пишется 0) в которые пишутся данные из формы (4 dbcombobox и 2 checklistbox) добавление производится, только последних выделенных checklistboxОВ. Так же есть 7-он поле bit, которое принимает значение 1 или 0, его необходимо обновлять CheckBoxОМ из DBGidEh + как занести все записи, где стоит галка в checklistbox
Добавлено через 11 минут
0
|
||
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 21.10.2019, 00:57 | |
|
Понимаете в чем дело, если у вас на форме все дб-компоненты настроены на источник данных и соответствующее поле в нем, то ничего настраивать дополнительно не требуется, но это для стандартных компонент, а вы используете DBGidEh, которого у меня нет и поведение его, для такого типа поля, мне неизвестно.
Вот чего я не понимаю, так зачем вы для 6 логических условий взяли тип поля int и там как я понял все у вас работает, а вот для 7 выбрали тип бит и теперь с ним мучаетесь?
0
|
|
|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
|||||||||
| 21.10.2019, 02:07 [ТС] | |||||||||
|
Нет. 6 полей интеджер. Все норм. По поводу чекбокса, ответил в другой теме. Меня здесь интересует вопрос как записывать данные из checklistbox которые помечены галочками необходимо записать в базу. Пишется только последняя выделенная строка.
При том в checklistbox1 у меня пользователи а в checklistbox2 права этих пользователей. Необходимо записать для каждого выделенного элемента checklistbox1 выделенные элементы checklistbox2. Пример: Если мы выбрали 3 пользователей в checklistbox1 и назначили им 4 права из checklistbox2 то в результирующей таблице должно добавится 12 записей (для каждого пользователя по 4 права) это как я вижу Потом буду в DBGridEh формировать запрос на выборку этих записей и отображать через запятую. Добавлено через 17 минут Добавить в базу для каждой выделенной записи checklistbox1 выделенные записи в checklistbox2:
0
|
|||||||||
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||||||
| 21.10.2019, 02:33 | ||||||
|
Для этого вам надо собрать информацию из всех элементов списка, т.е. пройтись циклом по элементам и проверить значение:
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
|||||||||||
| 21.10.2019, 05:31 [ТС] | |||||||||||
|
В базу как раз пишутся айди тех пользователей чьи текстовые данные отображены в checkboxlist
Как будет запрос выглядеть перед отправкой?
0
|
|||||||||||
|
32 / 26 / 7
Регистрация: 18.10.2019
Сообщений: 187
|
|||||||||||
| 21.10.2019, 17:00 | |||||||||||
|
Нет не так. CheckListBox элементы нумерует с 0, а вот в базе у вас ID пользователя может быть какой угодно, поэтому нельзя по нему ориентироваться, но можно заполнять CheckListBox методом AddItem(), где вторым параметром указывать идентификатор пользователя:
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
|
| 21.10.2019, 17:36 [ТС] | |
|
Все конечно хорошо но мне не нужен id пользователя. Вернее нужен, но...
Есть таблица права, куда нужно записать значения из ChekListBox1 (Пользователи) и ChekListBox2 (Права) но таким образом чтобы на 1 пользователя писались все выделенные в ChekListBox2 значения Список ChekListBox1 и ChekListBox2 формируется из базы как раз AddItem(string, id) Таблица итоговая представлена в 7 посте Можно мне пример такого заполнения? Или хотяб на мысль натолкнуть, может додумаю...
0
|
|
|
|
||||||
| 21.10.2019, 19:12 | ||||||
|
наталкиваю)))
любые операции с таблицами это всего лишь DELETE UPDATE INSERT если вам нужно вставить в таблицу записи , вы используете INSERT (хотя я бы сначала удалил старые записи, а потом бы писал новые, но это не суть, ибо ровно так же запросом работает) еще раз отошлю для начала сюда https://www.cyberforum.ru/blog... g5254.html там ближе к концу есть пример с INSERT единственное что меня смущает, что у вас поля называются "Пользователи" и "Права" каждое поле хранит ОДНО значение поэтому логичнее назвать "Пользователь" и "Право" и кроме того, с правами можно еще подумать, но поле пользователь уж точно ДОЛЖНО хранить ID пользователя из справочника пользователей, который должен быть отдельной таблицей Надеюсь, это так и есть в результате получим что-то такое
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
|
| 21.10.2019, 20:16 [ТС] | |
|
Права выбираются из CheckListBox2 тоже должны писаться в бд не строкой а новой записью
Права тоже пишутся ID которые берутся из справочника прав (другая таблица)
0
|
|
|
|
|||||||||||
| 21.10.2019, 20:39 | |||||||||||
|
замените Rght вместо string на integer и в строке 7 тоже поменяйте
остальное остается без изменений обычно в VCL используют старинный костылик - нужные ID пишут прямо в items маскируя их под ссылки на объекты для этого при заполнении
1
|
|||||||||||
| 22.10.2019, 03:13 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
|
| 22.10.2019, 13:31 [ТС] | |
|
Можете 6, 7 строчку пояснить? Для чего нужны указания DataType?
0
|
|
|
|
|
| 22.10.2019, 14:19 | |
|
northener, а в ARC это работать не будет, и мы будем читать посты "ой всегда работало а тут сломалось, ой, почему ОНИ все испортили" )))
комментаторы выше могут посчитать это вредным и излишним, но указывать тип передаваемых данных довольно важно) они по-разному обрабатываются сервером
0
|
|
|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
|
| 22.10.2019, 15:12 [ТС] | |
|
Чего как то не так работает.
1) При выборе 2 пользователей и 2 прав в CLBox1 и CLBox2 соответственно, добавляется 368 записей последних отмеченных в CLBoxах, а по идее должно 4 записи и не однотипных 2) Если в CLBox только одна запись выдаёт ошибку List index bound (2) с чем это может быть связано? Но данные записываются
0
|
|
|
|
|
| 22.10.2019, 15:29 | |
|
никто не видит ваш кот...
ну и на слово тоже не верит) и не верит, что вы почистили старые записи прежде чем писать новые но верит, что если выполнить 4 раза INSERT то не более 4 записей появится в таблице... Добавлено через 1 минуту ну и код писан на коленке, не проверен, чисто для образца например в строке 15 if clBox2.Checked[i] then должно быть if clBox2.Checked[j] then
0
|
|
|
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 102
|
||
| 22.10.2019, 15:53 [ТС] | ||
|
А по поводу только последних выделенных записей в CLBox? While do? Добавлено через 9 минут Тоесть если выделены 2 сотрудника и 2 право нужно 4 записи создать, тоесть первому сотруднику 2 записи и второму 2 записи
0
|
||
| 22.10.2019, 15:53 | |
|
Помогаю со студенческими работами здесь
20
Добавление записей в таблицу
Добавление записей в таблицу Добавление записей в таблицу Добавление записей в таблицу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|