Frage

Ich versuche, mit ADO.NET ein parametrisiertes SELECT an eine Interbase XE-Datenbank auszugeben.Der von mir verwendete Code lautet wie folgt:

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

Ich erhalte die folgende Fehlermeldung:

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

Dies deutet darauf hin, dass die Abfrage nicht in einer Syntax an Interbase gesendet wird, die als parametrisierte Abfrage erkannt wird.

Das ist etwas schwieriger als ich erwartet hatte.Bin ich ein Ficko?Können Sie helfen?

War es hilfreich?

Lösung

Es scheint die Norm zu sein, dass benannte Parameter nicht allgemein unterstützt werden. Haben Sie versucht, sie zu verwenden?stattdessen, d.h. cm_recnum=: CaseNumber bis cm_recnum=?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top