Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Скопировать автоинкрементное поле  (Прочитано 9060 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Harry
Команда клуба

ua
Offline Offline

« : 17-06-2005 13:50 » 

Имеется таблица, поля ID и NAME
Поле ID - строчного типа (хотелось бы автоинкремент, но нужна связь по полю с другой таблицей). При вводе нового элемента поле ID пустое, пользователь должен ввести код сам. Это не есть хорошо. Решил сделать дополнительное поле IDInkr и при сохранении записи присваивать значению ID значение IDInkr. Конструкции вида  fmWork.Table1.FieldByName('ID').AsString:=fmWork.Table1.FieldByName('IDInkr').AsString; не работают.....
Как реализовать копирование значения поля?
« Последнее редактирование: 19-12-2007 19:16 от Алексей1153++ » Записан

Слабый пол силен в силу слабости сильного пола к слабому
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 17-06-2005 15:24 » new

Непонятно что тут не работает? Выдается ошибка?
Или поле ID не заполняется? В каком месте программы вставлено присвоение значений для ID. Если до записи новой строки, то значение полю IDInkr в это время еще не присвоено.
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #2 : 20-06-2005 07:49 » 

не совсем понятно, что мешает использовать автоинкрементное поле в качестве линковочного. всю жизнь так и делалось, собственно Улыбаюсь возня со вторым полем явно лишняя, можно поподробнее о самой задаче? и какая юзается СУБД?
Записан

Harry
Команда клуба

ua
Offline Offline

« Ответ #3 : 20-06-2005 17:20 » 

СУБД - Парадокс, таблицы связываются как 1 ко многим по полю кода (ID). С удовольствием бы использовал автоинкрементное поле для ID и не мучался, но у меня запросы по ID группируют выборки, а при автоинкрементном поле запрос ругается. Поэтому и подумал создать дополнительное поле, с автоинкрементом и переносить его значение в поле ID. Идея извращенная, конечно, но лучше пока не придумал.
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Harry
Команда клуба

ua
Offline Offline

« Ответ #4 : 20-06-2005 17:46 » 

Поясню, как выглядят таблицы:

ГЛАВНАЯ    (связь с подчиненной как 1 ко многим)

ID
........ (другие поля)


ПОДЧИНЕННАЯ

ID_подчиненной_записи
........(другие поля)
ID_внешний (по нему происходит связь с полем ID в главной таблице)

Т.е. связка таблиц совсем простая, но поскольку в подчиненной таблице есть запрос, группирующий данные по полю ID_внешний, то его нельзя делать автоинкрементным (или можно, тогда как?). Из-за этого поле ID сделал целого типа, запросы все работают как надо, а вот автоприсвоения кода нет... а нужно. Вот и начал выдумывать извраты со вторым полем Улыбаюсь
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Zalk
Гость
« Ответ #5 : 21-06-2005 14:13 » 

Падажжи! Ты автоинкремент хочешь для главной или для подчиненной таблицы использовать?

Если для главной, то в чем проблема? В подчиненной "ID_внешний" будет просто интегер, ну и группируй по нему хоть вдоль, хоть поперек...

А если для подчиненной, так ето ваще низзя! Теория баз данных не позволяет. Потому как "ID_внешний" в подчиненной таблице МОГУТ ПОВТОРЯТЬСЯ! (т.к. связь "1 ко многим")
Записан
Harry
Команда клуба

ua
Offline Offline

« Ответ #6 : 22-06-2005 06:22 » 

Всем спасибо. Уже разобрался, как проблему побороть, и второе поле не понадобилось Улыбаюсь
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines