Immer “Intern .Net Framework-Datenanbieter Fehler 30 Fehler, wenn die Spalte NULL-Wert
Habe ich eine einfache .NET-Konsole-Programm, das verwendet OdbcDataReader Zeilen abrufen von Vorteil Lokalen Server.
Ich bin mit System-DSN definiert über den ODBC-Administrator auf windows 7.
Daten-Quelle verwendet Vorteil StreamlineSQL ODBC-Treiber v 10.00.00.03 und folgende params:
- Datenbank Pfad:
- Tabelle Typ: Advantage Verfügbar
- Server-Typen: Local Server (ALS)
Das Programm funktioniert gut, bis es auf eine Zeile, die einen UNGÜLTIGEN Wert in der Spalte.
Ich bekomme dann eine Ausnahme:
System.InvalidOperationException was caught Message=Internal .Net Framework Data Provider error 30. Source=System.Data StackTrace:
at System.Data.ProviderBase.DbBuffer.Validate(Int32 offset, Int32 count)
at System.Data.ProviderBase.DbBuffer.PtrToStringUni(Int32 offset, Int32 length)
at System.Data.Odbc.OdbcDataReader.internalGetString(Int32 i)
at System.Data.Odbc.OdbcDataReader.GetValue(Int32 i, TypeMap typemap)
at System.Data.Odbc.OdbcDataReader.GetValue(Int32 i)
at System.Data.Odbc.OdbcDataReader.IsDBNull(Int32 i)
at OdbcTest.Program.Main(String[] args) in c:\abcoa\visual studio 2010\Projects\OdbcTest\OdbcTest\Program.cs:line 66 InnerException:
Intellisence in VS2010 auch gibt folgenden Hinweis:
*_COMPlusExceptionCode = -532462766*
Habe ich auch eingeschaltet ODBC-Ablaufverfolgung und sehen können die folgenden Fehler im SQL.LOG:
OdbcTest.vshost b34-11e4 EXIT SQLSetStmtAttrW with return
code -1 (SQL_ERROR)
SQLHSTMT 0x0037C6D8
SQLINTEGER 1228 <unknown>
SQLPOINTER [Unknown attribute 1228]
SQLINTEGER -5
DIAG [HY092] [iAnywhere Solutions][Advantage ODBC
Driver]Invalid attribute identifier. (2184)
OdbcTest.vshost b34-11e4 ENTER SQLGetDiagFieldW
SQLSMALLINT 3
SQLHANDLE 0x0037C6D8
SQLSMALLINT 1
SQLSMALLINT 4
SQLPOINTER 0x05ABE480
SQLSMALLINT 12
SQLSMALLINT * 0x05ABE548
Wenn jemand helfen kann, mit diesem ich würde es sehr begrüßen!
IsDBNull()
und es wirft eine Ausnahme wenn die Spalte ist eigentlich NULL
?Richtig!!!! Ich habe sogar versucht nur einfache Zuweisung (var obj = reader[colIdx];) und es wirft Ausnahme an dieser Stelle...
InformationsquelleAutor zam6ak | 2010-11-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach Kontaktaufnahme mit Sybase Vorteil.ODBC-newsgroup wurde es vorgeschlagen, dass dies möglicherweise ein Fehler, der in einer neuen Version. Ich war auch in der Lage, neue version des Treibers, durch Kontaktaufnahme mit Sybase auf [email protected] und Fragen Sie für 10.0.0.5 version des ODBC
- Treiber.
InformationsquelleAutor zam6ak