![]() |
|
Модераторы: gambit |
![]()
|
|
| shandy |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 20.12.2010 Репутация: нет Всего: нет |
Есть проект под VS2010, в нем стандартный источник данных связанный с файлом MS Access (.accdb) делаю обычный инсерт в БД:
Как теперь возвратить primary key вставленной записи? Пробывал так:
Кричит на закрытый Connection, если его открывать перед этим то id возвращается = 0.... |
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 5 Всего: 306 |
было бы логичнее вызывать
сразу после операции вставки/обновления/удаления - нежели затем - при новом подключении. Добавлено через 2 минуты и 49 секунд т.е. я про составной запрос. |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
я читал что аксес(до 2003 включительно) запросы SELECT @@IDENTITY; не поддерживает. в 2007 получается есть?
|
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 5 Всего: 306 |
если верить Дэвиду Сеппа (и полагаю, что он прав) - поддержка SELECT @@IDENTITY начинается с Access 2000. Воспользоваться ею можно соответственно через Microsoft Jet OLE DB 4.0. |
|||
|
||||
| shandy |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 20.12.2010 Репутация: нет Всего: нет |
Так в том то и дело, что метод Insert был автогенерирован студией, и посмотрев на его код там оказалось идет открытие, инсерт, закрытие подключение.... То есть после вызова метода Insert уже бесполезно обращаться к закрытому коннекту... Временно вышел с положения - отнаследовал этот класс и переписал метод инсерт, чтобу там вызывалось открытие, инсерт, селект ИД, закрытие, и возвращался ИД... Но думаю это не очень правильно так как автогенерация работает при каждом внесении изменений в источник данных, как то странно что Microsoft не предусмотрело данный ход.... |
||||
|
|||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
shandy, редко пользуюсь автогенирацией, но если не мне не изменяет память то в визарде есть место в котором показано какой конкретно запрос будет выполнятся(т.е. что конкретно тебе визард генерит) и там можно открыть редактор запросов и дописать туда все что нужно. а визард в принципе не должен предугадывать ваши запросы, и подстраиваться под них, он генерит самый часто используемый вариант...
|
|||
|
||||
| shandy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 20.12.2010 Репутация: нет Всего: нет |
Этот момент я тоже проверял ), не получается добавить SELECT @@IDENTITY - он (визард) пытается его распарсить и выдает ошибку просто не понимает запрос (ругается на @). |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 8 Всего: 118 |
shandy, зато можно руками в XSD схеме вписать как в XML файле в общем
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| shandy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 20.12.2010 Репутация: нет Всего: нет |
Точно! Об этом я как-то не подумал ) В XSD вписал и все получилось, не знаю правда насколько это хардкордно, но в следующий раз лучше наверно свой клас модели написать для работы с базой и датасетом, чем использовать то что студия автогенерирует... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |