Здравствуйте, dmitry_npi, Вы писали:
_>Это известная багофича. В Windows 7 SP1, не знаю, случайно или намеренно, поменяли GUIDы компонентов ADO
. Получается, вы скомпилировали программу в расчете на одни номера, а на семерке за этими номерами — фактически другие компоненты. Самое простое решение — пересобрать под семеркой. (Но тогда, подозреваю, обратно на XP работать не будет). Кажется, по этому случаю выпускали фикс, так что попробуйте обновить вашу семерку.
Использованные GUID обратно не возвращаются, т.е. за ними никогда не будут и не могут стоять другие компоненты.
_>Рекомендую также погуглить, проблема известна. Например:
_>http://support.microsoft.com/kb/2640696/en-us
_>http://www.codeproject.com/Articles/225491/Your-ADO-is-broken
_>http://blogs.msdn.com/b/psssql/archive/2011/10/03/yes-we-made-a-mistake-and-are-finally-going-to-fix-it.aspx
И вот твои ссылки о том, что скомпилированный код на Win7SP1 не будут запускаться на устаревших ОСях.
//
// MessageId: DB_SEC_E_AUTH_FAILED
//
// MessageText:
//
// Authentication failed.
//
#define DB_SEC_E_AUTH_FAILED ((HRESULT)0x80040E4DL)
Я с базами данных не работал, но может этот код подвигнет на поиски верного решения. Ну и со своей стороны замечу, что в Win7 проверка прав доступа осуществляется строже чем на XP.