質問

私たちは、用途はasp.net-MVC(.NET 4)というレポートアプリケーションを開発しています。私たちは、Sybase ASE 12.5データベースにDDTEK.Sybaseミドルウェアを介して接続する。

私たちは、(ストアドプロシージャから)DataReaderオブジェクトにデータを引っ張って、問題を抱えています。ストアドプロシージャは、合計、カウントをやって、そして他のストアドプロシージャを呼び出すことにより、値(約50列)を計算します。

私たちが経験している問題がある...特定の(おそらく列の5%)がNULLで戻ってくるか0を、我々はデバッグおよびSQL文をコピーした場合のDataReaderのために使用されていると我々はすべての有効なを取得し、別のSQLツール内でそれを実行しますすべての列の値。



conn = new SybaseConnection
{
     ConnectionString = ConfigurationManager.ConnectionStrings[ConnectStringName].ToString()
};
conn.Open();

cmd = new SybaseCommand
{
     CommandTimeout = cmdTimeout,
     Connection = conn,
     CommandText = mainSql
};


reader = cmd.ExecuteReader();
// AT THIS POINT IMMEDIATELY AFTER THE EXECUTEREADER COMMAND
// THE READER CONTAINS THE BAD (NULL OR 0) DATA FOR THESE COLUMNS.

DataTable schemaTable = reader.GetSchemaTable();
// AT THIS POINT WE CAN VIEW THE DATATABLE FOR THE SCHEMA AND IT APPEARS CORRECT
// THE COLUMNS THAT DON'T WORK HAVE SPECIFICATIONS IDENTICAL TO THE COLUMNS THAT DO WORK 



誰もがこの使用してSybaseのような問題があったとADO?


おかげで、 ジョン・Kます。

役に立ちましたか?

解決

問題は解決します! ...問題は、nullがSQLで処理された方法でdiffenceであることが判明しました。 ...私たちは、非ANSIのヌル・テストを使用するストアドプロシージャで複数のインスタンスを持っていました。私たちのADOコードは、「SET ANSINULL」値がONだったそうではなかった間、私はこの問題をテストするために使用したSQLツールがOFFに「SET ANSINULLを」不履行た(むしろxより、X = nullはnullです)。そのため、この設定は、null値が返されることを可能に「TRUE」をテストすることはないnullをテストしたことをSQLコードのます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top