请教高手:“参数不足,期待是1”

bingjing198082 2006-11-27 02:26:06
我的VC++ MFC程序用ODBC连接Access数据库,编译可通过,但运行时会出现“参数不足,期待是1”的提示框,这是什么原因,请高手指点好吗?
这是我的程序:
void CDlg3::OnAdd()
{
// TODO: Add your control notification handler code here
CAdd dlg;
dlg.DoModal();

//创建CAdd的实例
CAdd m_Add;

//如果点击了确定按钮,则开始数据库操作
//创建CUserRecordSet的实例
CUserRecordSet m_UserRecordSet;
try
{
if(m_UserRecordSet.IsOpen())
m_UserRecordSet.Close();

//设置查询备件“AddIP=m_AddIP”
m_UserRecordSet.m_strFilter.Format("AddIP='%s'order by AddIP ASC",
m_Add.m_AddIP.operator LPCTSTR());
//执行查询
m_UserRecordSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
//判断数据库中是否有同名IP,如果有,则退出
if(!m_UserRecordSet.IsEOF())
{
//关闭记录集
m_UserRecordSet.Close();
//弹出警告信息
AfxMessageBox("同名机架已经存在");
//退出函数处理
return;
}
//如果没有同名机架,则执行正常的添加操作
//首先增加一条新记录
//m_UserRecordSet->MoveLast();
m_UserRecordSet.AddNew();
//然后编辑该条记录的内容
m_UserRecordSet.m_UserAble=m_Add.m_AddIP;
m_UserRecordSet.m_UserName=m_Add.m_AddName;
//最后要将用户信息更新到数据库中
//更新时,要判断当前是否能够进行更新操作
if(m_UserRecordSet.CanUpdate())
{
m_UserRecordSet.Update();
}
//关闭记录集
if(m_UserRecordSet.IsOpen())
m_UserRecordSet.Close();
//弹出“添加成功”的提示信息
AfxMessageBox("机架信息增加成功!");
}
//意外捕获
catch(CDBException*e)
{
e->ReportError();
//e->Delete();
return;
}

}
...全文
514 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxg007 2006-12-01
  • 打赏
  • 举报
回复
一般是SQL语句中的参数和表中的字段不对应。总之错在SQL语句的可能性最大
m00ners 2006-11-29
  • 打赏
  • 举报
回复
学习。以前也遇到过
handsomerun 2006-11-29
  • 打赏
  • 举报
回复
一般这样的错都是因为sql语句不对哦
zcp126 2006-11-29
  • 打赏
  • 举报
回复
比方说,select * from a whereb= 'c' order by e,成了这样的东西,其中where 和b之间应有空格
zcp126 2006-11-28
  • 打赏
  • 举报
回复
估计你的"AddIP='%s'order by AddIP ASC..."前面没有空格 和where 子句粘在一起了.
你不能MessageBox你的sql语句吗?从这里只能看到这点可能的错...
aa3000 2006-11-27
  • 打赏
  • 举报
回复
进来顶,接分
Elysium 2006-11-27
  • 打赏
  • 举报
回复
那句出的错啊
zcp126 2006-11-27
  • 打赏
  • 举报
回复
建议你mESSAGEbOX一下查询的sql语句再看看错在哪里.
你的filter("AddIP='%s'order by AddIP ASC...)这里AddIP前是否加空格,以防止和前面的WHERE子句粘在一起发生语法错误.

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧