우리는 asp.net-mvc (.net 4)를 사용하는보고 응용 프로그램을 개발 중입니다. DDTEK.Sybase 미들웨어를 통해 Sybase ASE 12.5 데이터베이스에 연결합니다.
스토어드 프로 시저의 데이터 보관함에 데이터를 가져 오는 데 문제가 있습니다. 저장 프로시 저는 합계, 개수 및 다른 저장 프로 시저를 호출하여 값 (약 50 열)을 계산합니다.
우리가 겪고있는 문제는 ... 특정 열 (아마도 열의 5 %)이 NULL 또는 0으로 되돌아 온다는 것입니다. 우리가 datareader에 사용되는 SQL 문을 디버그하고 복사 한 다음 다른 SQL 도구로 실행하면 모든 열에 대해 유효한 모든 값을 가져옵니다.
Sybase ASE에서 SQLDataReader를 사용할 때의 문제
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
사람이 사용하는베이스와 ADO 같은 문제가 있었나요?
덕분에, 존 K.
문제가 해결되었습니다. ... SQL에서 null이 처리되는 방식에 문제가있는 것으로 나타났습니다. ... 저장 프로 시저에서 nonsi null 테스트를 사용하는 인스턴스가 여러 개 있습니다. (x = null이 아닌 x = null)이 문제를 테스트하는 데 사용한 SQL 도구는 ADO 코드가 아니기 때문에 "SET ANSINULL"을 OFF로 설정하고 "SET ANSINULL"값을 ON으로 설정했습니다. 이 설정으로 인해 널 (null)을 테스트 한 SQL 코드는 "TRUE"를 테스트하지 않으므로 널 (NULL) 값이 리턴됩니다. –