![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.06.2009
Сообщений: 17
|
![]()
Добрый день всем форумчанам. Начну с описания проблемы.
Есть БД, сервер MSSQL. доступ к таблицам БД Осуществляется через ADOConnection, связь с таблицами-ADOTable. Имеется таблица contract.В неё пользователи вносят данные по договорам.Добавление записей происходит следующим образом:После нажатия на кнопку "сохранить" указатель перемещаем на последнюю запись таблицы,считываем id этой строки(id_contract),и прибавляем +1 к следующей(код приведен ниже)..Возникла ситуация,когда несколько пользователей одновременно считали этот id,и хотят сохранить свои данные.У пользователей возникла ошибка доступа к данным (duplicate primary key....).Как я понял,сервер не может внести данные с повторяющимся id (т.к. это поле ключевое).Как исключить эту проблему,чтобы на момент считывания id_contract и выполнения post одного пользователя,другие не смогли считать этот id и добавить свои данные. Извините,если коряво написано. С уважением,dalien Код:
|
![]() |
![]() |
![]() |
#2 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
![]()
а в МССКЛ раве нет что-то наподобие сиквенсов/генераторов?
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,069
|
![]()
Новый ИД вам нигде не требуется, судя по всему, так почему бы не объявить поле id_contract как identity и пусть СУБД сама думает как это сделать?
Генераторов с скюле до последнего времени вроде бы не было. Может там в 2005 каком-нибудь и появились. Ну это можно протестить запросом "create sequence tryam" ![]() В стандарте SQL за 2003 год вроде бы только sequence описаны. Последний раз редактировалось pu4koff; 12.08.2009 в 16:15. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 18.06.2009
Сообщений: 17
|
![]()
спасибо,попробую
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Run-time error 1004 для метода Unprotect при общем доступе | Chelentano | Microsoft Office Excel | 2 | 11.08.2009 16:57 |
Макрос не отрабатывает копирование при общем доступе к книге | Chelentano | Microsoft Office Excel | 6 | 07.08.2009 20:17 |
Ошибка при создании таблицы | LAGOX | SQL, базы данных | 1 | 28.03.2009 00:46 |
Сертификат безопасности при доступе к web-узлу | ss@sh | Microsoft Office Excel | 0 | 01.10.2008 15:49 |