41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67

Работа с первичным ключём при заполнении базы в Делфи

26.05.2015, 23:20. Показов 681. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ситуация такая. В базе в каждой таблице есть первичный ключ, когда я в делфи в форме заполняю все остальные поля в таблице, я не хочу вручную прописывать его, а чтобы он просто увеличивался на +1. Какой командой в коде делфи можно это прописать? Разумеется если записей в таблице ещё нету то начать с "1".
И ещё при помощи одной и той же формы я как создаю новую запись в таблице, так и редактирую её, поэтому не всегда нужно будет новое значение ключа.
P.s: База находится на SQL server, насколько я знаю типа счётчик в нём не предусмотрен, поэтому обращаюсь к вам.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2015, 23:20
Ответы с готовыми решениями:

Ошибка с первичным ключем в запросе
create table Запрос2 ( Код_раунда int not null, Код_персонажа int not null, Код_пользователя int not null, Полученные_очки_опыта...

Замена названий полей их кодами при заполнении базы
В общем столкнулся с проблемой. Есть две таблицы Схемы_измерения и Участки. В схемах измерения нужно добавить № участка, но так как база...

Использование SimpleAdapter.ViewBinder при заполнении списка из базы данных
Здравствуйте, помогите пожайлуста разобраться с вопросом. В моём APP есть база данных, и при нажатии на кнопку её строки заношу в...

3
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
26.05.2015, 23:51
чудес нет
ключ должен формировать сам сервер
для этого на разных серверах есть разные механизмы, где-то автоинкрементное поле, где-то генератор уникального значения
мы же не знаем какой сервер вы используете и какими компонентами обеспечиваете доступ
и какая версия delphi
0
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
27.05.2015, 00:34  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
чудес нет
ключ должен формировать сам сервер
для этого на разных серверах есть разные механизмы, где-то автоинкрементное поле, где-то генератор уникального значения
мы же не знаем какой сервер вы используете и какими компонентами обеспечиваете доступ
и какая версия delphi
Использую SQL server Express 2008 R2
Delphi 7
Я уже думал по поводу auto_increment, но в нём есть такая загорстка что если поле не создать, отменить или там удалить то счётчик продолжит увеличиваться, а мне это не нужно!
В теории (как я думаю) можно прописать код, который будет проверять значение последней записи в поле ключ, и при создании новой записи давать ему значение +1, а при отсутствии записей в таблице ставить =1, но я ещё слаб в использовании делфи, поэтому и обратился! Такая задумка реализуема?

Добавлено через 22 минуты
Подключаю базу через ADOConnection, ADOQuery и DATASource. В ADoQuery прописаны запросы на отображение в гриде! Ну в общем всё по обычному.
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
27.05.2015, 05:53
механизм +1 годится только для баз с 1 пользователем
если их 2 и более, то это гарантированный выстрел в ногу

далее - ключевое поле НИКОГДА не должно использоваться как порядковый номер
это просто безымянный ключ, по которому можно идентифицировать запись в таблице
так что он ДОЛЖЕН быть auto_increment
для порядкового номера заводите отдельное поле и храните там что угодно, и сортируйте по нему
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2015, 05:53
Помогаю со студенческими работами здесь

Выдает ошибку при заполнении Базы данных через Delphi
База данных - mysql dbforge Пытаюсь ввести данные в базу, но выдает эту страшную ошибку. С чем она связана? Заранее благодарю

Распределение данных по разным таблицам в exel при заполнении общей базы данных
При создании базы данных по оборотам компаний и формировании отчета по каждой из них, я не знаю как правильно сделать так, чтобы при...

Работа с TextBox C#: при заполнении первого текст бокса - второй выводил результат
Привет форумчане. Такая задача: есть 2 текст бокса, необходимо, после заполнения первого - увидеть результат во 2-ом, при этом выводить 15%...

Ошибка в заполнении базы MySQL
Здравствуйте уже 6 часов мучаюсь, код не хочет работать. При отправки формы код выполняется до отправки запроса а запрос или не...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru