![]() |
|
|
![]()
|
|
| dalien |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.6.2009 Репутация: нет Всего: нет |
Добрый день всем форумчанам. Начну с описания проблемы.
Есть БД, сервер MSSQL. доступ к таблицам БД Осуществляется через ADOConnection, связь с таблицами-ADOTable. Имеется таблица contract.В неё пользователи вносят данные по договорам.Добавление записей происходит следующим образом:После нажатия на кнопку "сохранить" указатель перемещаем на последнюю запись таблицы,считываем id этой строки(id_contract),и прибавляем +1 к следующей(код приведен ниже)..Возникла ситуация,когда несколько пользователей одновременно считали этот id,и хотят сохранить свои данные.У пользователей возникла ошибка доступа к данным (duplicate primary key....).Как я понял,сервер не может внести данные с повторяющимся id (т.к. это поле ключевое).Как исключить эту проблему,чтобы на момент считывания id_contract и выполнения post одного пользователя,другие не смогли считать этот id и добавить свои данные. Извините,если коряво написано. С уважением,dalien Код:
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
это одно и то же Добавлено через 3 минуты и 21 секунду ты что-нить знаешь про autoincrement поля? Добавлено через 4 минуты и 49 секунд Получить хотябы начальные знания по типам полей, многопользовательской работе и вообще о БД. |
|||
|
||||
| dalien |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.6.2009 Репутация: нет Всего: нет |
читал,но видимо плохо(
|
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
dalien, срочно начинай изучать БД с нуля. Книг, статей с примерами в Интернете достаточно. Поддерживаю Akella.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
поддерживаю и добавлю: ADOTable - это зло пользуй ADOQuery. -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
а ADODataSet?
|
|||
|
||||
| pseud |
|
||||||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
ну это я утрировал. имею ввиду что зло:
не зло:
речь конечно идет о многопользовательских системах. Добавлено через 11 минут и 43 секунды
Пост Виталия Невзорова (вечная память) отсюда: Прежде чем спросить загляните сюда! -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
||||||
|
|||||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
надо бы подискутировать, но нет возможности, вот нашел выдержку из чьей-то курсовой:
От себя добавлю, что и в локальных БД (например, paradox) без мощи SQL не обойтись (я не обхожусь -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Это и так понятно, что кверя гибче, так сказать и сеть меньше грузит за счёт фетча.
Но ADODataSet тоже ведь работает на запросах.... Добавлено через 55 секунд Я с ADO очень мало работаю, можно сказать, что не работаю. Но мне кажется, что ADODataSet лучше, чем ADOQuery. Добавлено через 1 минуту и 50 секунд Так ещё есть же ADOCommand |
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
аналогично )) давай замнем для ясности )) -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |