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!

Sie fordern 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

Schreibe einen Kommentar