开发者

Getting "Internal .Net Framework Data Provider error 30" error when column has NULL value

I have a simple .NET console program that uses OdbcDataReader to fetch rows from Advantage Local Server. I am using System DSN defined via ODBC Administrator on windows 7. Data Source uses Advantage StreamlineSQL ODBC driver v 10.00.00.03 and following params:

  • Database Path:
  • Table Type: Advantage Available
  • Server Types: Local Server (ALS)

The program works fine until it encounters a row that has a NULL value in the column. I then get an exception:

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 also gives following hint: *_COMPlusExceptionCode = -532462766*

I have also turned on ODBC tracing and can see following error in the 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

If anyone can help with this I would very 开发者_如何转开发much appreciate it!


After contacting Sybase's Advantage.ODBC newsgroup it was suggested that this may be a bug that was fixed in a new upcoming release. I was also able to get new version of the driver by contacting Sybase at advantage@sybase.com and asking them for 10.0.0.5 version of the ODBC driver.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜