Não é possível criar consulta parametrizada para Interbase usando ADO.NET

StackOverflow https://stackoverflow.com/questions/6331175

  •  27-10-2019
  •  | 
  •  

Pergunta

Estou tentando emitir um SELECT parametrizado para um banco de dados Interbase XE usando ADO.NET.O código que estou usando é o seguinte:

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"]);
          }
        }
      }

Estou recebendo o seguinte erro:

ERROR [42S22] [DataDirect][ODBC InterBase driver][InterBase]Dynamic SQL Error, SQL error code = -206, Column unknown, CASENUMBER

O que me sugere que a consulta não está sendo enviada ao Interbase em uma sintaxe que ele reconhece como uma consulta parametrizada.

Isso é um pouco mais difícil do que eu esperava.Estou sendo um ficko?Você pode ajudar?

Foi útil?

Solução

Parece ser a norma que os parâmetros nomeados não são amplamente suportados, você tentou usar?em vez disso, ou seja, cm_recnum=: CaseNumber para cm_recnum=?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top