SQL Server 2008 动态使用Use 数据库名的有关问题~

SQL Server 2008 动态使用Use 数据库名的问题~~~
SQL server2008 问题~~~
多个记录集公用一个_connectionptr时,出了点问题~~请教各位大虾~~
_connectionptr m_pc;
......(打开连接m_pc)....
_variant v;
m_pc->excute("use master", NULL, ADONS::adcmdtext);
v=m_pc->excute("select count(*)from dbo.sysdatabases", NULL, ADONS::adcmdtext);
m_pc->excute("use mydb", NULL, ADONS::adcmdtext);
v=m_pc->excute("select count(*)from dbo.sysobjects", NULL, ADONS::adcmdtext);
m_pc->excute("use master", NULL, ADONS::adcmdtext);
v=m_pc->excute("select count(*)from dbo.sysdatabases", NULL, ADONS::adcmdtext);
然后就出错了, 说“dbo.sysdatabases”对象名无效;
仔细调试过了,根本原因是excute(“use db”...)语句执行过程未出错,但是没有产生效果,无法切换数据库
万分不解~~
试过多次了(有时切换3、4次后出错, 有时切换1次都不行~~ 跟人一样,有脾气)

------解决方案--------------------
v=m_pc->excute("select count(*)from dbo.sysdatabases", NULL, ADONS::adcmdtext);
改为
v=m_pc->excute("select count(*)from master.dbo.sysdatabases", NULL, ADONS::adcmdtext);

------解决方案--------------------
看不懂,有情帮顶!
------解决方案--------------------
C/C++ code

m_pc->excute("use master", NULL, ADONS::adcmdtext);
p=m_pc->excute("select count(*)from dbo.sysdatabases", NULL, ADONS::adcmdtext);
m_pc->excute("use mydb", NULL, ADONS::adcmdtext);
p=m_pc->excute("select count(*)from dbo.sysobjects", NULL, ADONS::adcmdtext);
m_pc->excute("use master", NULL, ADONS::adcmdtext);
p=m_pc->excute("select count(*)from dbo.sysdatabases", NULL, ADONS::adcmdtext);