Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

каким сделать интерфейс   Найти похожие ветки 

 
tchn1 ©   (2004-01-30 03:21) [0]

как бы вопрос полаконичнее сформулировать?...
интересно, кто как поступает в такой ситуации?
есть форма, на которой пара гридов, привязанных к паре таблиц mssql. таблицы соотносятся "многие-к-одному".
т.е. нужно завести новую запись в главную таблицу, после этого завести в дочернюю таблицу записи, соответствующие этой новой записи в главной. для связи используется первичный ключ в главной - автоинкрементное поле, значение которой генерится в момент добавления записи на сервере, а не на стороне клиента (в этом-то и загвоздка). для того, чтобы можно было нормально добавлять записи в дочернюю таблицу, требуется, чтобы был сгенерен этот самый идентификатор в главной. получается, что пользователь должен как минимум два раза подтвердить ввод - сначала под главной таблицей, потом под дочерней. а может кто-нибудь придумал как здесь схитрить, и сделать это самое подтверждение только один раз?


 
Deniz ©   (2004-01-30 06:46) [1]

А что в MSSQL нельзя получить ID на клиенте и не использовать автоинкрементное поле? Проблема бы решилась.


 
tchn1 ©   (2004-01-30 07:26) [2]

да можно, но зачем этот геморрой?


 
Deniz ©   (2004-01-30 07:31) [3]

Что значит геморрой? Это у тебя сейчас геморрой для юзера :)


 
ЮЮ ©   (2004-01-30 07:50) [4]

>А что в MSSQL нельзя получить ID на клиенте и не использовать автоинкрементное поле?

По большому счёту нельзя

>сделать это самое подтверждение только один раз

"подтверждение" - это уже из твоего клиента. И кто мешает "слить" код в одно место и не требовать "подтверждение" дважды?


 
Nikolay M. ©   (2004-01-30 09:15) [5]

Вчера ж только было!
http://delphimaster.net/view/3-1075377113/
Рекомендую не делать через @@IDENTITY, как там описывается, а посмотреть [3] и найти ту статью на rsdn.


 
Deniz ©   (2004-01-30 12:59) [6]

> Nikolay M. © (30.01.04 09:15) [5]
Прочитал http://delphimaster.net/view/3-1075377113/ пост Ega23 © (29.01.04 15:31) [5]
"А вообще я в таких случаях не пользуюсь триггерами (кстати, ещё один минус в их сторону. Ну не люблю я их.), а пользуюсь ХП."

Мой вывод(если что поправьте): получается что, из-за "кривой" реализации @@IDENTITY и частично автоинкрементных полей, воспользоваться механизмом передачи на клиента уникального значения сложно, т.е. сам механизм придется реализовывать программисту и следить за уникальностью.
Неужели нет в MSSQL ничего подобного, как генераторы в IB или последовательности в Oracle? Если есть, то покажите пример для tchn1 © (30.01.04 03:21)


 
Nikolay M. ©   (2004-01-30 14:08) [7]


> Deniz © (30.01.04 12:59) [6]

На sql.ru было много дебатов на эту тему. Ни к чему определенному, помнится, не пришли, только раскололись на несколько лагерей и у каждого были свои аргументы.


 
Academic ©   (2004-01-30 14:23) [8]

При использованиии TADOTable, выставляем своство TableDirect.
В момент добавления записи в главную таблицу сразу же отображается значение IDENTITY.


 
tchn1 ©   (2004-01-30 23:55) [9]

да не пользуем мы ADO, мы юзаем SQLDirect, однака, но какая блин разница?!

> Deniz ©

причем тут генераторы? генераторы тоже срабатывают в момент ПОДТВЕРЖДЕНИЯ ввода, так что ИБ далеко в этом смысле не ушла от MSSQL, да и вообще - MSSQL - нормальная платформа, пока все устраивает, у меня вопрос о том, КАК ИНТЕРФЕЙС ПОСТРОИТЬ?



Страницы: 1 вся ветка

Текущий архив: 2004.02.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
1-79857
Builder
2004-02-09 23:13
2004.02.25
Формы в dlls


14-80281
Jolik
2004-02-03 18:11
2004.02.25
В Дельфи 5 появилась такая бага ...


1-79975
AkaSaint
2004-02-11 18:30
2004.02.25
Ошибка при приведении объекта к типу предка


3-79558
denis24
2004-01-29 13:58
2004.02.25
insert into aa.dbf (a,b,c,d) values....


8-80044
Демон
2003-10-24 23:36
2004.02.25
Плейлист