Вызывать хранимые процедуры SQL Server через ODBC не удается, оставляя пустые таблицы - PullRequest
1 голос
/ 18 февраля 2010

Мы используем ODBC от C на Linux.Мы можем успешно выполнять прямые операторы («INSERT ...», «SELECT ...» и т. Д.), Используя ODBC для SQL Server 2008 и MySQL.Мы переходим на хранимые процедуры, поэтому сначала разработали хранимые процедуры MySQL.Вызов хранимых процедур MySQL с использованием ODBC работает.Жизнь хороша.

Хранимые процедуры переведены на T-SQL.Мы проверяем, что они функционируют, выполняя запросы непосредственно из Visual Studio.База данных заполнена, запросы работают.Huzzah.

У нас есть тестовая программа, позволяющая нам использовать MySQL или SQL Server, непосредственное выполнение или вызов хранимых процедур.Мы вызываем хранимые процедуры T-SQL из программы тестирования C.Вывод журнала указывает на то, что таблицы заполняются данными, работают запросы и т. Д. До конца, когда оператор не выполняется.Программа завершает работу (на несколько секунд дольше обычного).Другие 3 случая работают (прямой MySQL, прямой SQL Server, хранимый процесс MySQL).

Мы исследуем базу данных SQL Server.Оно пустое.У нас включен автокоммит, поэтому я не думаю, что это проблема фиксации.Хранимые процедуры просты, и являются копиями прямого SQL.Есть идеи?

1 Ответ

0 голосов
/ 18 февраля 2010

Звучит так, как будто запрос выполняется - затем по какой-то причине возникают ошибки, и все упаковывается в одну транзакцию - и откатывается. Отсюда и пустые таблицы.

Есть ли в хранимой процедуре перехват ошибок? SQL Server 2005 и более поздние версии значительно улучшили обработку ошибок с помощью TRY .. CATCH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...