Mit ADO.NET kann keine parametrisierte Abfrage für Interbase erstellt werden
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?
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