Heute hatte ich ein sehr einfaches und eigentlich recht simples Problem zu lösen.
Via ODBCCommand eine parametrisierte Anweisung absetzen. Schnell gedacht, und auch gemacht:
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = connection;
cmd.CommandText = "select * from Product where ProductId = @id";
cmd.Parameters.Add("@id", OdbcType.UniqueIdentifier).Value = Guid.NewGuid();
cmd.ExecuteReader();
Schade leider nicht ganz so einfach:
Unbehandelte Ausnahme: 'test.exe': 'c:\windows\assembly\gac\system.data.resources\1.0.5000.0_de_b77a5c561934e089\system.data.resources.dll' geladen, keine Symbole geladen.
System.Data.Odbc.OdbcException: ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Must declare the scalar variable "@id".
Der Fehler liegt im Detail. Nach freundlicher Unterstützung vieler SP-Kollegen dann die Lösung:
...Parameter für Abfragen in Zusammenhang mit OleDbCommand-Objekten und OdbcCommand-Objekten verwenden Fragezeichen. Abfragen in Zusammenhang mit SqlCommand-Objekten verwenden benannte Parameter, die mit dem Symbol @ anfangen...
-> http://msdn.microsoft.com/library/deu/default.asp?url=/library/deu/vbcon/html/vbconparametersindataadaptercommands.asp
Nachmittag gerettet :).