У меня 2 компьютера.
Первый (A) с установленными Windows Server 2003 и SQL Server 2000.На этом компьютере существует база данных.Эта база данных добавлена в источники данных ODBC с версией драйвера SQLServer - 2000.85.1022.
Вторая (B) с 64-битной Windows 7.База данных с компьютера A также добавлена в источники данных ODBC через собственный клиент SQLServer.Версия драйвера - 2007.100.1600.22.
У меня есть программное обеспечение, которое подключается к базе данных с использованием источника данных ODBC, получает некоторые данные и выполняет вычисления.Код выглядит так:
wsprintf ((LPSTR)m_stmt,"select field1 from MyTable Order by field1");
float field1Val;
SQLExecDirectEx(m_hstmt,m_stmt,SQL_NTS);
SQLBindCol(m_hstmt, 1, SQL_C_FLOAT, &field1Val, 0, &cbCustID);
m_retcode = SQLFetch(m_hstmt);
Когда я запускаю эту программу на компьютере A, все работает нормально. Когда я вызываю его на компьютере, соединение B работает нормально, но после использования SQLFetch () я получаю ошибку «Числовое значение вне диапазона» (22003).
field1, объявленное в базе данных какдесятичное 9 (18: 2).Сохраненное значение равно «0,50»
Так что вопрос в том, как заставить его работать на компьютере B.
БД не была создана мной, и ясовсем не эксперт по базам данных.Надеюсь, вы мне поможете.
Спасибо.
ps, когда я выбираю значение с помощью SQL_C_CHAR, все работает нормально.