Главная страница
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.019 c
3-79586
SnapIn
2004-01-25 21:53
2004.02.25
MSSQL и ADO - Отображение значения Lookup-поля


14-80107
Anatoly Podgoretsky
2004-02-02 17:37
2004.02.25
Разъемы DVI


14-80197
syte_ser78
2004-01-30 11:49
2004.02.25
Задорнов


11-79692
Кладов
2003-06-05 09:27
2004.02.25
Совместимость MCK-проектов с FPC


14-80152
dmk
2004-02-01 00:34
2004.02.25
HELP!!!