Я строю запрос с использованием объекта команды ODBC в .Net с несколькими передаваемыми параметрами. При выполнении запроса к SQL Anywhere я получаю следующую ошибку.(Тот же код работает против SQL Server).
[System.Data.Odbc.OdbcException] = {"ОШИБКА [07002] [Sybase] [Драйвер ODBC] [SQL Anywhere] Недостаточно значений для переменных хоста"}
Объект командыимеет то же количество параметров, что и заполнители ('?') в запросе.Ниже приведен простой запрос и код C #, который не проходит тест.
C # код для заполнения переменных хоста
String queryText = @ "DECLARE @loanuseraddress varchar (40), @loanid decimal Set @loanid =? Set @loanuseraddress =? Select * from loan_assignments гдеloan_id = @loanid "
OdbcConnection connection = new OdbcConnection(request.ConnectionString);
OdbcCommand command;
command = new OdbcCommand(queryText, connection);
OdbcParameter param1 = new OdbcParameter("@loanid", OdbcType.Decimal);
param1.Value = request.Loan.LoanNumber;
command.Parameters.Add(param1);
OdbcParameter param2 = new OdbcParameter("@loanuseremployer", dbcType.VarChar);
param2.Value = appraisalCompanyUpdate.LoanUserEmployer;
if (param2.Value == null)
param2.Value = DBNull.Value;
command.Parameters.Add(param2);
connection.Open();
OdbcDataReader rows = command.ExecuteReader();