CString m_str;
CString m_plate,m_name;
第一句://实现功能:如果表中存在Plate就把m_name写到表里
m_str.Format("Update info Set Name='%s' where Plate='%s',m_name,m_plate);第二句://实现功能:如果表中不存在Plate就新增一记录并把m_plate,m_name写到表中
m_str.Format("Insert info (Plate,Name) Values'%,'%s',m_plate,m_name);//这句SQL语法对吗?//info 是表名Plate,Name是字段名现在问题是:我想加个判断语句,但不怎么加?
是不是要先查表判断啊?执行了查表语句后再执行UPdate或Insert会不会查了两次表?

解决方案 »

  1.   

    m_str.format("SELECT plate FROM info WHERE Plate='%s'", plate);
    根据返回结果集的内容判断是否为空。
    应该先查表判断再操作。
      

  2.   

    m_str.Format("Insert info (Plate,Name) Values'%,'%s',m_plate,m_name);改成:m_str.Format("Insert info (Plate,Name) Values('%,'%s'),m_plate,m_name);
    现在这样肯定要重复啊你可以通过查询判断重复不重复也可以先删除,再插入,这样就不用Update了
      

  3.   

    m_str.Format("Insert info (Plate,Name) Values('%,'%s')",m_plate,m_name);
    少个双引号
      

  4.   

    To  cpio(希望我的回复能带给您一点点帮助)  
    不能删除.因为我这是对主表进行操作
      

  5.   

    直接insert或者update根据返回错误处理(insert返回已存在,update返回不存在)
      

  6.   

    To  lfchen(一条晚起的虫) :
    请详细些, 返回的是什么错误代码?
      

  7.   

    try{}catch{}吧,不同的数据库返回有点不一样。