ODBCParameters

08/07/2009 - 11:49 von ChristianH | Report spam
Hi,

ich setze wie nachstehend eine Abfrage an eine ODBC Datenquelle

string cmdText = "SELECT field1, field2, field3, field4 WHERE field3 =
@field3 FROM MyTable";

odbcCommand = new OdbcCommand(cmdText, odbcConnection);

foreach (var parameter in ODBCParameters)
{
odbcCommand.Parameters.Add(parameter);
}

dataReader = odbcCommand.ExecuteReader();

Beim Ausführen von ExecuteReader wird die nachstehende Exception ausgelöst:
ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Die
"@field3"-Skalarvariable muss deklariert werden.

Ich habe schon versucht @field3 durch ? zu ersetzen
(http://www.aspnetzone.de/forums/thread/197838.aspx ). Hier bekomme ich einen
anderen Fehler.

Was mache ich falsch?

Grüße
Christian
 

Lesen sie die antworten

#1 Elmar Boye
08/07/2009 - 12:32 | Warnen spam
Hallo Christian,

ChristianH schrieb:
ich setze wie nachstehend eine Abfrage an eine ODBC Datenquelle

string cmdText = "SELECT field1, field2, field3, field4 WHERE field3 =
@field3 FROM MyTable";



ODBC kann nichts mit benannten Parametern anfangen.
Dort muß wird ein Parameter durch ein "?" repràsentiert
und mit positionellen Parametern gearbeitet.


odbcCommand = new OdbcCommand(cmdText, odbcConnection);

foreach (var parameter in ODBCParameters)



Was steht in ODBCParameters?

Die Parameterzuweisung an die "?" erfolgt bei ODBC positionell von
rechts nach links, d. h. in Deiner Auflistung müssen die Parameter
mit den "?" korrespondieren.

Siehe <URL:http://msdn.microsoft.com/de-de/lib...8.aspx>
"Konfigurieren von Parametern und Parameterdatentypen (ADO.NET)"

(und wieder ein Grund mehr den Native Client zu verwenden... ;-)

Gruß Elmar

Ähnliche fragen