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?

¿Fue útil?

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
scroll top