No se puede crear una consulta parametrizada para Interbase usando ADO.NET
Pregunta
Estoy tratando de emitir un SELECT parametrizado a una base de datos de Interbase XE usando ADO.NET.El código que estoy usando es el siguiente:
using (OdbcConnection odbcConnection = new OdbcConnection(ConfigurationManager.ConnectionStrings["LawbaseTest"].ToString()))
{
odbcConnection.Open();
using (OdbcCommand odbcCommand = new OdbcCommand())
{
odbcCommand.CommandType = CommandType.Text;
odbcCommand.Connection = odbcConnection;
odbcCommand.Parameters.Add(new OdbcParameter(":CaseNumber", 1265));
odbcCommand.CommandText = "select * from cmstub where cm_recnum = :CaseNumber";
using (IDataReader rdrData = odbcCommand.ExecuteReader())
{
Output(rdrData["CM_DESC"]);
}
}
}
Recibo el siguiente error:
ERROR [42S22] [DataDirect][ODBC InterBase driver][InterBase]Dynamic SQL Error, SQL error code = -206, Column unknown, CASENUMBER
Lo que me sugiere que la consulta no se envía a Interbase en una sintaxis que reconoce como una consulta parametrizada.
Esto es bastante más difícil de lo que esperaba.¿Estoy siendo un idiota?¿Pueden ayudarme?
Solución
Parece ser la norma que los parámetros con nombre no se admiten de forma generalizada.en su lugar, es decir, cm_recnum=: CaseNumber a cm_recnum=?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow