8. Juni 2011

Unrecognized C_parameter type in copy_statement_with_parameters

Beim Versuch mittels Mono unter debian squeeze über odbc auf eine PostgreSQL-Datenbank zuzugreifen, erhielt ich folgende Fehlermeldung "Unrecognized C_parameter type in copy_statement_with_parameters". Der Fehler tritt nicht auf, wenn der Parameter vom Typ Integer ist.

Dabei habe ich die Parameter folgendermaßen dem OdbcCommand (cmd) übergeben:

cmd.Parameters.AddWithValue("?", "test");


Nach einigen ausprobieren, habe ich die Lösung des Problems gefunden. Man muss explizit den OdbcType des Parameters angeben.


OdbcParameter par1 = new OdbcParameter("?", OdbcType.Char);
par1.Value = "test";
cmd.Parameters.Add(par1);

Kommentare:

Henning hat gesagt…

Hallo Frau Knöfel,

ich habe leider keinen Weg gefunden Sie direkt zu kontaktieren, deswegen verusche ich es mal über diesen Weg.

Ich bin der Betreiber von Experdios.de's C# Lernvideos. Ich habe mir Ihren Blog angesehen und festgestellt, dass Sie sich viel mit speziellen Problemen zu C# befassen. Ich dachte mir vielleicht ist meine Seite für Ihre Leser von interesse, weil ich mehr die Grundladen von C# erkläre, während Sie sich um spezielle Aspekte für Experten kümmern.

Mit freundlichen Grüßen
Henning Lange

Peter Becker hat gesagt…

Als Einzeiler geht das auch:

cmd.Parameters.Add(new OdbcParameter("?", OdbcType.Char){Value="Test"});

oder

cmd.Parameters.Add(new OdbcParameter("?", OdbcType.Char).Value="Test");