我用 Ado 执行查询操作select from * asg 没有问题,但是我想把查询的结果存入一张表中,执行select * int aaa from asg ,执行后,表可以创建,但是关闭数据库的时候总是报错,很是奇怪,请赐教。在线等待。
解决方案 »
- 如何动态更改对话框属性
- 怎么在mfc中弹出对话框
- 如何用CREATEWINDOWEX创建一个窗口并且带有最小化图标和X图标,只有最小化图标起作用
- 关于多语言显示的问题第二次提问,恳请帅哥美眉指教,高分相送,毫不吝惜!
- ip helper api相关的那个三个头文件,有的能不以发一份给,必重谢!!!
- 高手指点 在WINDOWS下怎么设置网卡的混杂模式
- win7资源管理器搜索功能能否被截获问题
- 连接的一个问题?!
- 面试的遗憾!
- Sql server,_RecordsetPtr读取二进制数据字段,调用GetChunk报错“在此环境中不允许操作”
- 如何在VC中为一int变量设定最大值啊?MAX_VALUE?
- asf文件用哪个播放器可以播?《100分》
HRESULT hr=(*m_pUserSet).CreateInstance("ADODB.Recordset");
if(hr!=S_OK) return false;
try
{
m_adoDBConn.GetConnection()->GetInterfacePtr()->BeginTrans();
(*m_pUserSet)->Open((_variant_t)"select * into aaa from asg",
m_adoDBConn.GetConnection()->GetInterfacePtr(),
adOpenDynamic, adLockOptimistic,adCmdText);
(*m_pUserSet)->Close();//执行此句时出错,报称关闭操作时没有权限
delete m_pUserSet;
m_pUserSet=NULL;
m_adoDBConn.CloseConnect();
}
HRESULT hr=(*m_pUserSet).CreateInstance("ADODB.Recordset");
//改为 HRESULT hr=m_pUserSet.CreateInstance("ADODB.Recordset");
if(hr!=S_OK) return false;
try
{ m_adoDBConn->GetInterfacePtr()->BeginTrans();
//m_pUserSet->Open((_variant_t)"select * into aaa from asg",
//...
(*m_pUserSet)->Open((_variant_t)"select * into aaa from asg",
m_adoDBConn.GetConnection()->GetInterfacePtr(),
adOpenDynamic, adLockOptimistic,adCmdText);
//m_pUserSet->Close();
(*m_pUserSet)->Close();//执行此句时出错,报称关闭操作时没有权限
delete m_pUserSet;//去掉
m_pUserSet=NULL; //去掉
m_adoDBConn.CloseConnect();
}
你的这个操作并不返回结果集,所以你关闭的时候就出错了,
我在你的另一个贴子中回复了,你查询到的结果已经存到一个表中了
你可以使用m_pConnection->Execute()的方法
——————
你可以拿这个SQL语句放到数据库中执行一遍,就会发现,并不返回结果集
因为你并没有打开一个记录集。
m_adoDBConn.GetConnection()->GetInterfacePtr(),
adOpenDynamic, adLockOptimistic,adCmdText);
这一句,并没有真正“open”
你可以判断一下此时m_pUserSetde 的状态;
if(m_pUserSetde->State==adStateOpen)
{
}
if(m_pUserSet->State==adStateClosed)
{
}
....
{
m_pUserSet->Close();
}