Невозможно создать параметризованный запрос для Interbase с использованием ADO.NET - PullRequest
0 голосов
/ 13 июня 2011

Я пытаюсь выдать параметризованный SELECT для базы данных Interbase XE с помощью ADO.NET.Код, который я использую, выглядит следующим образом:

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

Я получаю следующую ошибку:

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

Что говорит о том, что запрос не отправляется в Interbaseсинтаксис, который он распознает как параметризованный запрос.

Это гораздо сложнее, чем я ожидал.Я что, фикус?Вы можете помочь?

1 Ответ

0 голосов
/ 15 июня 2011

Кажется нормой, что именованные параметры не поддерживаются широко, вы пробовали использовать? вместо этого, т.е. cm_recnum =: CaseNumber to cm_recnum =?

...