複数のパラメーターが渡された.NetでODBCコマンドオブジェクトを使用してクエリを作成しています。SQLAnywhereに対してクエリを実行すると、次のエラーが発生します。(同じコードがSQL Serverに対して機能します)。
[System.Data.Odbc.OdbcException] = {"ERROR [07002] [Sybase] [ODBC Driver][SQLAnywhere]ホスト変数に十分な値がありません"}
コマンドオブジェクトには、クエリのプレースホルダー('?')と同じ数のパラメーターが追加されています。以下は、テストに失敗した単純なクエリとC#コードです。
ホスト変数を設定するC#コード
String queryText = @ "DECLARE @loanuseraddress varchar(40)、@loanid decimal Set @loanid =?Set @loanuseraddress =?select * from Loan_assignments where 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();