Je crée une requête en utilisant l'objet de commande ODBC dans .Net avec plusieurs paramètres transmis. Lors de l'exécution de la requête sur SQL Anywhere, j'obtiens l'erreur suivante. (Le même code fonctionne avec SQL Server).Erreur de requête SQL Anywhere: valeurs insuffisantes pour les variables hôte
[System.Data.Odbc.OdbcException] = { "ERREUR [07002] [Sybase] [ODBC Driver] [SQL Anywhere] valeurs Pas assez pour les variables hôtes"}
L'objet de commande a le même nombre des paramètres ajoutés comme espaces réservés ('?') dans la requête. Voici une requête simple et un code C# qui échoue au test.
code C# pour alimenter les variables hôtes
Chaîne QUERYTEXT = @ "DECLARE @loanuseraddress varchar (40), @loanid décimal Set @loanid = Set @loanuseraddress = select * from loan_assignments où 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();
Merci, c'était mon problème aussi :) – Carra