在执行到_variant_t sql("select count(*) as count1 from tabs where table_name= 'TEST';");这句时只是相当于定义了一个字符串而已,当然不会错。而m_pRecordset->Open(sql,_variant_t((IDispatch *)pMyConnect,true), adOpenKeyset,adLockOptimistic, adCmdText);这句是开始执行定义的语句,所以出现了问题。我觉得有可能是在执行SQL的时候自动为此语句加上了分号,而你又加上了一个分号,产生了无效字符的错误。...