![]() |
|
Модераторы: gambit |
![]()
|
|
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
С учётом того что база (я пока пользуюсь аксесом, но не исключаю преход на SQL сервер, и хочю сделать так чтоб потом только строку подключения пришлось поменть) на сервере, и значени её первичных ключей могли поменяться, короче как с таким делом в дотнете разбираются.
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
На уровне кода, делают датасет (лучше типизированный - его в дизайнере "нарисовать" можно) с двумя таблицами и relation между ними. Запись в parent-таблицу добавляется "как обычно". В child-таблицу запись добавляется с указанием, к какой записи из parent-а она относится. При заполнении датасета адаптером, вначале делаем Fill для parent-таблицы, затем - для child-таблицы, так мы гарантируем что битых связей не будет. При сохранении в БД соблюдаем тот же порядок для вызова метода Update.
P.S. если вопрос был не об этом, уточните -------------------- ![]() |
|||
|
||||
| Rapalex |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
А если в момент между заполнением датасета его обновлением была добавлена новая запись, и огда первичные ключи в базе получатся не такие как были в оперативе? Это сообщение отредактировал(а) Rapalex - 17.10.2006, 14:54 -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
||||
|
|||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
В БД и датасете ключи не связаны друг с другом. Другое дело, метод Update обновляет ключи в датасете и связи по ключевым полям сохраняются. -------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
Т.е. я о значениях ключей могу не беспокоится, сколько бы людей с этой базой не работало?
Добавлено @ 16:36 Тогда следующий вопрос почему в сгенерированом методе AddRow который берёт все значения для столбцов нужно указывать все поля включая вычисляемые? Добавлено @ 16:37 И можно ли от лишних входных параметров избавиться? Это сообщение отредактировал(а) Rapalex - 17.10.2006, 16:34 -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Если поставить у поля датасета Readonly = true, то поле не надо будет передавать в AddRow
-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
Так мои вычислемые столбцы сами установили это свойство когда я выражение задал, а входной параметр требуется!!!
А вопрос с транзакциями, так чтоб именно в две таблицы данные добавились, а то вдруг в одну добавятся а в другую нет? Это сообщение отредактировал(а) Rapalex - 19.10.2006, 14:32 -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| iad |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 10.9.2007 Где: Москов Репутация: нет Всего: -2 |
|
||||
|
|||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
Всем спасибо.
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |