我在vc6用ADO连接MS SQL SERVER 2000,当sql太长(自己构造一个update语句)时会导致windows2000报内存不能写的错误,但是sql却正确执行了。查看MFC库的CDaoDatabase的execute函数如下:
void CDaoDatabase::Execute(LPCTSTR lpszSQL, int nOptions)
{
ASSERT_VALID(this);
ASSERT(m_pDAODatabase != NULL); COleVariant var(lpszSQL, VT_BSTRT);
DAO_CHECK(m_pDAODatabase->Execute(
V_BSTR(&var), COleVariant((long)nOptions)));
}
发现有一个V_BSTR(&var)的转换,debug后问题就出在这样。
询问高手怎么解决?