FBDataAdapter зависает при заполнении с помощью StoredProc - PullRequest
1 голос
/ 21 декабря 2011

У меня странная проблема. Я использую Firebird для .Net и использую базу данных Interbase. Когда я пытаюсь заполнить набор данных с помощью SQL-запроса, он работает нормально, но когда я пытаюсь выполнить StoreProc, он зависает при методе заполнения.

Вот фрагмент моего кода:

DataTable dt = new DataTable();
 FbDataAdapter ada = new FbDataAdapter("spsGetLastOpened",        System.Configuration.ConfigurationManager.ConnectionStrings["mydb"].ConnectionString);
 ada.SelectCommand.CommandType = CommandType.StoredProcedure;
 ada.SelectCommand.Parameters.Add("@USER_KEY",2);
 ada.Fill(dt);

Я погуглил проблему, люди предположили, что это происходит, если уже есть открытое соединение с базой данных, поэтому я создал отдельную утилиту, которая не открывает соединение (Dataadapter управляет соединением самостоятельно).

Пожалуйста, посоветуйте, что я тут не так делаю.

С уважением, Али

Ответы [ 2 ]

0 голосов
/ 26 декабря 2011

Для любого, кто попадает сюда из Google .. Я не знаю, в чем причина, но когда я выполнял как транзакцию, это работало.Я только выполнил запрос выбора, я не могу понять, почему он работал?

0 голосов
/ 21 декабря 2011

Я не использую firebird для .Net, но хочу запомнить одну вещь. Вы можете выполнить хранимую процедуру как обычный оператор SQL

- выполнить процедуру SomeProc (?, ...)

или для выбираемых процедур

-выбрать * из SomeProc (?, ....)

...