![]() |
|
![]() ![]() ![]() |
|
FasterHarder |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 1.8.2007 Репутация: нет Всего: нет |
Всем программистам привет! Respect! В общем есть малая проблемка, как такое реализовать: для простоты, есть форма, на ней edit и кнопка. Когда ввели в edit - имя контраг. нажимаем кнопку, при клике запускается вызов ХП на сервере MS 2000. ХП проверяет на дубликат новое значение и если такого нет делается insert, иначе НУЖНО ВЕРНУТЬ КЛИЕНТУ СООБЩЕНИЕ О ТОМ, что такой контрагент уже есть. Я незнаю как вернуть ошибку клиенту. Подскажите как быть то?
тестовый пример, затем легко переделать в ХП:
|
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
На клиенте exec <нужная процедура> <параметры> проверяй ответ, @ret_code = > 0 - ошибок нет, id добавленной записи < 0 - ошибка, текст в @err_message -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
FasterHarder |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 1.8.2007 Репутация: нет Всего: нет |
Спасибо Deniz, я сделал в итоге на клиенте все, на будущее учту ваш вариант
![]()
|
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
FasterHarder, не совсем корректный код, добавь:
А вообще: Делаешь уникальный индекс по полю. Добавляешь без проверки. Ловишь и обрабатываешь исключение. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
FasterHarder |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 1.8.2007 Репутация: нет Всего: нет |
Deniz,
А вообще: Делаешь уникальный индекс по полю. Добавляешь без проверки. Ловишь и обрабатываешь исключение. это про клиента разговор или про сервер? А что касается:
то режим работы с БД будет однопользовательский. Я прекрасно понимаю что добавляется огромная куча гемора если разрабатывать под multi - user, я даже 5% незнаю свойств и методов, которые при этом нужно будет затрагивать. Эх, ламер я все таки. ![]() |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
Индекс на сервере, а все остальное на клиенте.
Уникальный индекс не даст добавить 2 одинаковых значения, а в проверке есть потенциальная дырка. Пример:
нужно всегда закладывать работу с несколькими пользователями. Программы очень редко остаются однопользовательскими, и когда наступает час Х, перевод функциональность на несколько пользователей становится кошмаром. ну куча не сильно большая, иногда достаточно некоторых знаний по СУБД и интуиции. Все это ИМХО, и не стоит рассматривать как правду в последней инстанции ![]() -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |