Главная страница
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.025 c
3-79671
Ivanesus
2004-01-30 14:26
2004.02.25
IB+DBGrid текущая запись, как лучше поступить?


3-79675
Zorik
2004-01-30 13:51
2004.02.25
DLL и приложение


14-80207
Cobalt
2004-01-30 17:31
2004.02.25
Функция возвращения короля


14-80163
Арр'акктур
2004-01-24 20:44
2004.02.25
Перехват нажатия на 3-ю кнопку крысы


3-79619
chtr
2004-01-19 15:37
2004.02.25
MSSQL через интернет?