powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Теоретический вопрос: SQL2000 ADO.NET
3 сообщений из 3, страница 1 из 1
Теоретический вопрос: SQL2000 ADO.NET
    #32919473
Фотография B0rG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые,
Для не очень большого проекта (call center application) требуется продумать логику базы данных. Т.к. се есть мой первый большой опыт с ADO.NET в промышленных масштабах надеюсь на вашу помощь и сочувствие :)

Примерная бизнес логика:

1. А звонит по телефону в центр.
2. На А тут же заводится запись в таблице Rescues(RescueID, EditInProgress=1)
3. Тут же создается несколько дочерних записей в таблицах Jobs(JobID, RescueID, EditInProgress=1) и Services(ServiceID, RescueID, EditInProgress=1).
4. Тут А может вполне себе бросить трубку, соответственно сотрудник давит Cancel, записи стираются.
5. Сотрудник давит Submit, записи, созданные в 2,3 обновляются с кошерными данными и EditInProgress=0

Пока что (как обычно за пол дня до релиза) было сделано на соплях через 'INSERT INTO', простейший DataSet.Update на каждую запись и флаг EditInProgress=1/0.

Rescues.RescueID генерится как Identity(1,1) Primary key clustered.

На следующей неделе возможно появится время все это переделать, и есть такая мысль:

1. Создать Dataset c дочерними таблицами Rescues, Jobs, Services
2. Все обновления до нажатия кнопки Submit/Cancel проводить в Dataset
3. После нажатия кнопки вызывать DataSet.Update, Dataset.AcceptChanges.

По этому поводу есть несколько вопроcов:
1. Каким образом будет производится синхронизация первичного ключа RescueID при записи DataSet? Ведь для создания записей в дочерних таблицах Jobs, Services необходимо знать значение текущего RescueID
2. Будет ли она производится автоматически?
2. Т.к. сотрудников порядка 10 - 20 человек, будет ли она производится автоматически если несколько человек будут одновременно давить AddNew, Submit и все такое?


Cheers
Pete
...
Рейтинг: 0 / 0
Теоретический вопрос: SQL2000 ADO.NET
    #32919522
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если работать на уровне команд insert/update/delete, то техника занесения данных с полем identity описана в статье
Updating the Database with a DataAdapter and the DataSet
раздел - AutoIncrement Columns

есть и другой подход - использовать ХП для занесения данных (на входе, например, XML dataset'a; на выходе identity).
...
Рейтинг: 0 / 0
Теоретический вопрос: SQL2000 ADO.NET
    #32919543
Фотография B0rG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.

Т.е. лучше оставить все как есть:

1. INSERT INTO Rescues ... ;SELECT SCOPE_IDENTITY()
2. INSERT INTO Jobs ...
3. INSERT INTO Services ...

Т.к. другим путем будет геморройнее.

Cheers
Pete
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Теоретический вопрос: SQL2000 ADO.NET
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]