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

Запись ключевого поля

20.06.2018, 22:11. Показов 2392. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всех приветствую, господа. Проблема записи в ключевое поле не находить решения. прошу помощи у всех. Имею 4 таблицы с разным количеством полей и типом данных созданных в Access 2003. Поля главной таблицы(услуги) имеют большое количество столбцов. Ключевое поле - дата ( формат Date). На форме расположено ,соответствующее количеству столбцов, компоненты DBEdit.Там же для управления выводом строк расположен компонент MonthCalendar. При нажатии на дату в MonthCalendar дата переносится в соответствующий DBEdit и осуществляется поиск и вывод соответствующей строки во все компоненты DBEdit(там же и подсветка в зависимости от содержимого). Так как поле даты ключевое и заполнено частично, то при выборе не внесенного значения процесс застопорился на создании новой строки. Т.е. новая дата в DBEdit заходит , а в таблицу (создать новую строку) я его как уже только не пытался "затолкать". Хотелось бы эту процедуру внести сразу за выбором даты выполнить. Я не силен в БД и SQL.. Лопатил форум 2 дня - безрезультатно. Знаю, что решение простое, но времени в обрез. Прикрепляю скрины кода и формы. приложение пишу на Delphi 7.


0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.06.2018, 22:11
Ответы с готовыми решениями:

Изменение ключевого поля в Firebird
Здравствуйте! Как программным способом в Delphi сделать так, чтобы в таблице не было внешнего ключевого поля - данная таблица соединяется с...

Счетчик ключевого поля таблицы БД
Всем привет!!! Пишу програмку с БД Access. Вообщем там используется два DBGrid'а. Один на Form1 другой на Form2. И реализую вставку...

Поиск ключевого поля DBF
Вопрос такой: Есть файл DBF, требуется найти в каждой из его строк ключевые поля и узнать их порядковый номер. Т.е. получить информацию...

17
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
20.06.2018, 23:11
Просто ввести в строке поиска (допустим, в Яндексе) "Ключевое поле" и узнать что это такое.
Впрочем, верхом легкомыслия назначать дату ключевым полем.
0
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 11
21.06.2018, 07:27  [ТС]
Смысл ключевого поля мне понятен. Хотелось бы узнать механизм записи в ключевое поле из приложения Delphi 7. Вот этой информации я ищу. Будьте снисходительны, обойдитесь без нравоучений и сарказма.

Добавлено через 16 минут
И я понимаю, что внесение нового значение должно происходить до поиска и вывода строк. Т.е. нужно проверить условие на существование строки.
0
Модератор
 Аватар для D1973
9910 / 6447 / 2455
Регистрация: 21.01.2014
Сообщений: 27,365
Записей в блоге: 3
21.06.2018, 07:29
Цитата Сообщение от O_C_E_H_b Посмотреть сообщение
Смысл ключевого поля мне понятен
Наверное таки не совсем... Ключевое поле обязано быть уникальным!!! Как это может обеспечить поле "Дата"? У Вас планируется одна запись в день?
0
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 11
21.06.2018, 07:30  [ТС]
Да все верно. Это один день и он уникален. Возможно редактирование только подчиненных столбцов.
0
Модератор
 Аватар для D1973
9910 / 6447 / 2455
Регистрация: 21.01.2014
Сообщений: 27,365
Записей в блоге: 3
21.06.2018, 07:31
Запись в ключевое поле осуществляется точно так же, как и в любое другое поле. Разница в том, что перед записью необходимо производить проверку на уникальность.
0
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 11
21.06.2018, 07:32  [ТС]
Прошу, подскажите оператор или процедуру, каким образом это сделать?
0
Модератор
 Аватар для D1973
9910 / 6447 / 2455
Регистрация: 21.01.2014
Сообщений: 27,365
Записей в блоге: 3
21.06.2018, 07:36
Лучший ответ Сообщение было отмечено O_C_E_H_b как решение

Решение

правильнее всего делать запросом, критерием отбора в котором будет Ваше поле Даты с указанным Вами значением. Если после выполнения запроса НД не пуст - значение уже присутствует в БД, т.е. уникальным не является.
А без запроса можно той же самой функцией Locate это сделать...
1
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 11
21.06.2018, 07:41  [ТС]
If Form1.ADOQuery2.RecordCount=0 then begin ...
могу я таким образом проверить наличие записи в поле? И Могу ли я Через компонент ADO внести потом через Insert?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,657
Записей в блоге: 21
21.06.2018, 08:33
тут с архитектурой БД точно проблемы, с которыми вы еще столкнетесь
но для вас никаких ограничений на запись любого поля нет
кроме того, если вы уже записывали что-то в БД , то странно слышать ваш вопрос, а как записать что-то в бд
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
21.06.2018, 08:58
Цитата Сообщение от O_C_E_H_b Посмотреть сообщение
Смысл ключевого поля мне понятен
Как и у D1973 нет в этом уверенности.

В записях бронирования номеров гостиницы не может быть уникальных дат.
Более качественно - сделать ключевым полем действительно уникальное числовое поле - идентификатор строки, как это принято во многих СУБД и не имеющего смыслового значения для пользователя.

Не по теме:

Про "сарказм" придумано воспаленным воображением - нет его, а без "нравоучений" здесь на форуме не обойтись, иначе как рассказывать про решение проблем.

0
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 11
21.06.2018, 20:57  [ТС]
Проблема решена.Все работает. Отдельное спасибо D1973, Лишь он в своем посте дал крошку для поиска.


Не по теме: Мне нелегко это говорить, но помощи на данном форуме мне получить практически не удалось. Я задавал простой вопрос и получал пространные ответы, которые не давали пути к решению. Это все равно что спросить где туалет, а тебе будут объяснять как расстегивать ремень, как снимать штаны, как правильно держать... и проч.. Я подозреваю, что конкретика здесь не в приоритете, а больше присутствует материальная заинтересованность. За N-ю сумму, я думаю, мне написали бы эти две строчки кода и принесли перевязанные бантиком. Но все равно , спасибо всем. Как говориться - отрицательный опыт - это тоже опыт!
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,657
Записей в блоге: 21
21.06.2018, 21:16
ваша проблема - классический XYZ
поэтому помогать вам в решении ВАШЕЙ выдуманной проблемы никто не торопится

кроме того, вы выдумываете новые велосипеды вместо простого чтения документации и следования ей
Цитата Сообщение от O_C_E_H_b Посмотреть сообщение
При нажатии на дату в MonthCalendar дата переносится в соответствующий DBEdit и осуществляется поиск и вывод соответствующей строки во все компоненты DBEdit
ваша задача поместить дату в Edit ? или все-таки в датасет??
по этому поводу помощь на форуме достаточно ясно написана тут https://www.cyberforum.ru/blog... g5259.html

Цитата Сообщение от O_C_E_H_b Посмотреть сообщение
Так как поле даты ключевое и заполнено частично
как можно вообще заполнить 8 байтное вещественное число "частично"???
пара байтов есть а пары - нет??
чем помочь? нечем. никто даже не понимает, о чем вы...

а по поводу N-й суммы стоит заметить, что люди, которые дают советы, обычно обеспечены немного лучше чем те, что их просит. и ваши небольшие сбережения стоят кода с бантиком только в случае если остальной код - верный
а переписывать все, включая БД - хм...

тем не менее, если человек хочет сделать правильно и разобраться на будущее, ему обычно помогают. фриофчардж.
такие примеры довольно распространены на форуме
0
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 11
21.06.2018, 22:00  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
ваша задача поместить дату в Edit ? или все-таки в датасет??
Моя задача сформулирована была четко -
Цитата Сообщение от O_C_E_H_b Посмотреть сообщение
При нажатии на дату в MonthCalendar дата переносится в соответствующий DBEdit и осуществляется поиск и вывод соответствующей строки во все компоненты DBEdit(там же и подсветка в зависимости от содержимого).
Какими методами я это сделал, можете посмотреть скрин. Результат - положительный.
Цитата Сообщение от O_C_E_H_b Посмотреть сообщение
Так как поле даты ключевое и заполнено частично
Означает, что поле даты установлено как ключевое и не все поля заполнены ( не одно поле их там много!)
Не по теме: Я работаю в строительстве в среднем звене, имею очень приличный заработок и
Цитата Сообщение от krapotkin Посмотреть сообщение
и ваши небольшие сбережения
достаточны, чтобы одному достойно обеспечивать семью из 5 человек. Программирование мое хобби и ничего более. Просто представьте себе, ко мне приходит человек за советом, а я начинаю ему объяснять, что ему нужно самому понять, поднять СНиПы и СанПиНы, изучить свойства материалов, технологию строительства и уже потом делать все самому..( попростому , послать..). Я с удовольствием помогаю и советом и делом по возможности. Но среди вашего сообщества существуют другие понятия. Их тяжело принять и понять.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,657
Записей в блоге: 21
21.06.2018, 22:29
имхо, вы несколько неверно трактуете
тут больше похоже, что к вам приходит человек и говорит, "я на втором этаже своей дачи строю бассейн на 10 на 10 на 2 метра глубины. стоять будет на 4 столбиках по краям. помогите цвет подобрать"
вы ему - "какой цвет, чувак, это 200 тонн! какие столбики? "
а он - "отвалите. 20 тонн я уже залил, все пучком. я к вам пришел за советом по цвету только, а даже столбики не умеете"
вот на что это похоже с нашей стороны.

будете брать деньги с него? нет конечно. если только за полную переделку.
0
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 11
21.06.2018, 23:31  [ТС]
Да я не буду спорить. Сколько людей - столько и мнений. Однако, я бассейн построил ,а вот цвет вы мне так и не помогли подобрать) . База полностью запустилась и работает. Багов не наблюдаю, поля пустые (ключевые) заполняются по нажатию на дату в календаре. Редактирование и создание нового заказа выполнено в отдельной форме, база клиентов подключилась.Пожелаю вам удачи в выборе подходящего для Вас цвета ..
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
22.06.2018, 02:50
Цитата Сообщение от O_C_E_H_b Посмотреть сообщение
Моя задача сформулирована была четко -
Это не задача. Но вам, похоже этого не понять. Пока.
0
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 11
22.06.2018, 05:32  [ТС]
Цитата Сообщение от northener Посмотреть сообщение
Это не задача. Но вам, похоже этого не понять.
Да где нам сирым да убогим до вас.. Вы то поди бога за ....... держите. Не понимаю таких людей. Для некоторых людей ботинки одеть - уже тяжелая задача,а вы со своим высокомерием... Тфу, даже слов нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.06.2018, 05:32
Помогаю со студенческими работами здесь

Автоматическое заполнение ключевого поля
Имеется таблица клиенты ключевое поле id, как реализовать чтобы данное поле автоматически заполнялась по возрастанию.

Как узнать ID ключевого поля InterBase?
День добрый! Такой вопрос есть БД InterBase 6.0, в которую средствами IBTransaction1 и IBQuery1 записываются данные. insert into ZAPROS...

Добавление и изменение в таблицах без ключевого поля
Доброго времени суток. Очень прошу помочь разобраться...Возникла следующая проблема: создавала формы ввода для таблиц базы данных, до этого...

Недостаточно сведений ключевого поля для обновления
SELECT t.Id, fWeight, fWeightCast, tF1, tF2, tF3, sF1, sF2, sF3, iTerm, IDrob, strM, iCount, fcT1, fcT2, fcT3, fcT4, fcT5,...

Задание индекса у ключевого поля таблицы Access
При добавлении ключевого поля в таблицу необходимо задать ему индекс(ADD CONSTRAINT), а то автоматически создаваемый не знаю как узнать...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru