Ошибка возникает в самом начале вашей процедуры в выражении
START TRANSACTION;
Как и в документации говорится:
Новая транзакция запускается автоматически после завершения транзакции с использованием этих команд, поэтому отдельной команды
blockquote>START TRANSACTION
не существует.Это должно ответить на ваш первый вопрос.
Что касается второго, когда вы находитесь в ветви исключений, вы фактически откатили субтранзакцию, которая началась с
BEGIN
, который принадлежит предложениюEXCEPTION
(или после последнегоCOMMIT
). Вы все еще в транзакции, поэтому вы можете выдатьCOMMIT
иROLLBACK
.К твоему третьему вопросу: нет, нет способа зафиксировать все до последнего исключения & rdquo ;. Вы можете получить это, только обернув каждый оператор в блок
BEGIN ... EXCEPTION ... END
, но это серьезно ухудшит вашу производительность (не считая код нечитабельным).Используйте
BEGIN ... EXCEPTION ... END
блоков разумно, когда вы ожидаете, что оператор может потерпеть неудачу.
Не должно быть никакой проблемы с соединяющимся Доступом 2007 к базе данных SQL Server 2008.
Необходимо удостовериться что:
Ваша база данных SQL Server 2008 доступна, т.е. что она не заблокирована вниз и что это доступно для машины (машин), где у Вас будет свое приложение Доступа 2007 года.
Несколько вещей проверить:
Вы создали DSN ODBC (Система DSN) использующий административное средство Windows ODBC. При работе системы на 64 бита удостоверьтесь, что Вы используете версию на 32 бита ODBC для создания DSN, иначе это никогда не будет видимо к Доступу, который является приложением на 32 бита.
После того как Вы создали ссылку ODBC (и протестировали ее работы) на машине, где Доступ установлен, можно просто связать таблицы: В Доступе 2007, на Внешней вкладке ленты Данных> импорт> Больше> База данных ODBC.
Затем выберите DSN, который Вы создаете для своей базы данных SQL Server 2008 и выбрали, какие таблицы Вы хотите связать.
Одно решение (хотя это не может относиться к SQL Express) состоит в том, чтобы использовать Проект Данных Доступа, хотя в 2007 дело не в этом интуитивный, как сделать это.
Создайте новый (пустой) DB, а скорее, чем принимают значение по умолчанию .accdb расширение, изменяют его на .adp. Можно также выбрать Проект Данных Доступа (.adp) формат при использовании диалогового окна обзора для установки расположения файла.
После того, как созданный, Вас спросят, хотите ли Вы связаться с DB SQL... остальное является довольно обладающим интуицией, но спросите для получения дальнейшей информации, если Вы должны.
Ребята - вы действительно должны проверить, работает ли это, прежде чем запускать случайные ответы. Требуется всего около минуты, чтобы запустить проект Access и обнаружить, что он на самом деле не легко подключается к SQL 2008.
Существует множество причин использовать проекты вместо ODBC, но вот несколько:
При условии, что соответствующие протоколы включены, решение состоит в том, чтобы перейти к Откройте вкладку «Дополнительно» диалогового окна «Связь с данными» и удалите значение в настройках сетевой библиотеки.
Рэй, Причина, по которой вы не видите свою базу данных, связана с разрешениями. Вам необходимо предоставить имя пользователя, которому вы используете доступ к своей базе данных. В MS SQL Server Management Studio разверните базу данных, которую вы создали, и перейдите на вкладку безопасности, чтобы настроить имя пользователя, которое вы используете. Либо добавьте его, либо создайте нового пользователя
Надеюсь, это поможет ....