Question

Nous développons une application de reporting qui utilise asp.net-mvc (.net 4). Bifurcation dans le middleware DDTEK.Sybase à une base de données Sybase ASE 12.5.
Nous avons un problème en tirant des données dans un datareader (à partir d'une procédure stockée). La procédure stockée calcule les valeurs (environ 50 colonnes) en faisant des sommes, compte et appeler d'autres procédures stockées.
Le problème que nous connaissons est ... certains (peut-être 5% des colonnes) reviennent avec NULL ou 0. Si nous déboguer et copiez l'instruction SQL utilisée pour le datareader et l'exécuter dans un autre outil SQL que nous obtenons tous valides valeurs pour toutes les colonnes.


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 


Quelqu'un at-il eu des problèmes comme celui-ci en utilisant Sybase et ADO?

Merci, John K.

Était-ce utile?

La solution

Problème résolu! ... Le problème est avéré être un diffence dans les nulls façon ont été traitées dans le SQL. ... Nous avons eu plusieurs cas dans la procédure stockée qui ont utilisé des tests non nuls ansi. (X = null plutôt que x est nulle) Les outils SQL que j'avais utilisés pour tester ce problème ont été défaillants « SET ANSINULL » sur OFF alors que notre code ADO était pas la valeur « SET ANSINULL » était activée. En raison de ce paramètre, le code SQL qui a testé pour nul ne serait jamais tester « TRUE » permettant à la valeur nulle à renvoyer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top