1.
把
m_pCommand->CommandText = "SELECT count(*) FROM Item WHERE URL = ?";
改为:
m_pCommand->CommandText = _bstr_t("SELECT count(*) FROM Item WHERE URL = ?");
2.
执行循环前打开事件探查器,执行循环时查看事件探查器中显示的SQL语句是否正确(例如url参数是否与urlArray的内容一致).
把
m_pCommand->CommandText = "SELECT count(*) FROM Item WHERE URL = ?";
改为:
m_pCommand->CommandText = _bstr_t("SELECT count(*) FROM Item WHERE URL = ?");
2.
执行循环前打开事件探查器,执行循环时查看事件探查器中显示的SQL语句是否正确(例如url参数是否与urlArray的内容一致).
解决方案 »
- 如何去掉字符串的头尾空格与回车符
- update 没有提供参数? 每个参数都有写阿! 而且检查了很多遍! 代码贴出来了,帮忙看看。谢谢!!
- 多个insert 插入问题
- 请问:我在还原数据库时遇到了问题,有提示错误,请高手给看看!
- SQL2000无法启动
- 怎么用一个replace同时替换掉数据中的 和<br>?
- 急求SQL2005数据库结构复制到SQL2000的方法。
- 请教一个mssql问题,急,本人实在没法解决了!
- 关于数据库查询并进行统计的问题,请教各位!
- 牛虻呼叫老千:c/s的mis做好后,要生成安装文件了,sql server里的数据库(包括存储过程、表、视图、触发器等)怎么版??一般公司开发的mis这时候怎么处理的??//牛虻
- 急:删除表,重新建立表后,表之间的关联不见了,如何恢复?
- MSSQL\LOG下的内容可以删除吗?
exec sp_executesql N'SELECT count(*) AS num FROM Item WHERE URL = @P1', N'@P1 char(200)', '-1
AdoNS::_ParameterPtr param2 = m_pCommand->CreateParameter( _bstr_t("@url"), AdoNS::adChar, AdoNS::adParamInput, 200, _bstr_t("")); //改动1:为参数命名,必须以@开头
m_pCommand->Parameters->Append(param2);// 添加参数
AdoNS::_RecordsetPtr m_pRecordset1 = NULLfor (int i=0;i < nameArray->GetSize(); i++)
{
// 检查有无重复的记录
m_pCommand->CommandText = "SELECT count(*) FROM Item WHERE URL = @url";// 改动2:去掉参数占位符,直接使用创建的参数名称
param2->Value = _bstr_t(urlArray->GetAt(i)); //参数赋值
m_pRecordset1 = m_pCommand->Execute(&vNULL, &vNULL, AdoNS::adCmdText);// 执行命令
if(int(m_pRecordset1->Fileds->GetItem(0)->Value) == 0) //如果结果集大于0则说明重复
{
m_pRecordset->AddNew();
m_pRecordset->Fields->GetItem(_variant_t("Name"))->Value = _bstr_t(nameArray->GetAt(i));
m_pRecordset->Fields->GetItem(_variant_t("Url"))->Value = _bstr_t(urlArray->GetAt(i));
m_pRecordset->Fields->GetItem(_variant_t("EID"))->Value = _bstr_t(eid);
m_pRecordset->Fields->GetItem(_variant_t("Sort"))->Value = _bstr_t(name);
m_pRecordset->Update();
}
}
CommandText = "SELECT count(*) FROM Item WHERE URL = @url"
参数名称要一致.请检查一下是否一致.
param2->Value = _bstr_t(urlArray->GetAt(i)); //参数赋值
改为:
param2->Value = _variant_t(urlArray->GetAt(i)); //把_bstr_t替换为_variant_t
循环时再用事件探查器检查一下生成的SQL语句._variant_t vtEmpty (DISP_E_PARAMNOTFOUND, VT_ERROR);
_variant_t vtEmpty2(DISP_E_PARAMNOTFOUND, VT_ERROR);AdoNS::_ParameterPtr param2 = m_pCommand->CreateParameter( _bstr_t(""), AdoNS::adChar, AdoNS::adParamInput, 200, _bstr_t(""));
pCommand->Parameters->Append(param2);// 添加参数
AdoNS::_RecordsetPtr m_pRecordset1 = NULLfor (int i=0;i < nameArray->GetSize(); i++)
{
// 检查有无重复的记录
m_pCommand->CommandText = _bstr_t("SELECT count(*) FROM Item "
"WHERE URL = ?");// 返回重复记录数量
param2->Value = _variant_t(urlArray->GetAt(i)); //参数赋值
m_pRecordset1 = m_pCommand->Execute(&vtEmpty, &vtEmpty2, AdoNS::adCmdText);// 执行命令
if(int(m_pRecordset1->Fileds->GetItem(0)->Value) == 0) //如果结果集大于0则说明重复
{
m_pRecordset->AddNew();
m_pRecordset->Fields->GetItem(_variant_t("Name"))->Value = _bstr_t(nameArray->GetAt(i));
m_pRecordset->Fields->GetItem(_variant_t("Url"))->Value = _bstr_t(urlArray->GetAt(i));
m_pRecordset->Fields->GetItem(_variant_t("EID"))->Value = _bstr_t(eid);
m_pRecordset->Fields->GetItem(_variant_t("Sort"))->Value = _bstr_t(name);
m_pRecordset->Update();
}
}