我用ADOQuery来实现与数据库(Access)链接,想用update语句更新数据库,但老是出错   sql1 := 'update 学生 set 姓名="'+DBEdit2.Text+'" where 学号="'+DBEdit1.Text+'"';
   sql2 := 'update 学生 set 性别="'+DBEdit3.Text+'" where 学号="'+DBEdit1.Text+'"';
   sql3 := 'update 学生 set 专业="'+DBComboBox1.Text+'" where 学号="'+DBEdit1.Text+'"';
   sql4 := 'update 学生 set 学院="'+DBComboBox2.Text+'" where 学号="'+DBEdit1.Text+'"';
   sql5 := 'update 学生 set 生源地="'+DBEdit6.Text+'" where 学号="'+DBEdit1.Text+'"';
   sql6 := 'update 学生 set 籍贯="'+DBEdit7.Text+'" where 学号="'+DBEdit1.Text+'"';
   sql7 := 'update 学生 set 民族="'+DBEdit8.Text+'" where 学号="'+DBEdit1.Text+'"';
   sql8 := 'update 学生 set 生日="'+DBEdit10.Text+'" where 学号="'+DBEdit1.Text+'"';
   sql9 := 'update 学生 set 入学时间="'+DBEdit11.Text+'" where 学号="'+DBEdit1.Text+'"';   StudentQuery.Close;
   StudentQuery.SQL.Clear;
   StudentQuery.SQL.Add(sql1);
   StudentQuery.SQL.Add(sql2);
   StudentQuery.SQL.Add(sql3);
   StudentQuery.SQL.Add(sql4);
   StudentQuery.SQL.Add(sql5);
   StudentQuery.SQL.Add(sql6);
   StudentQuery.SQL.Add(sql7);
   StudentQuery.SQL.Add(sql8);
   StudentQuery.SQL.Add(sql9);
   StudentQuery.ExecSQL;
   StudentQuery.Close;一运行就出错,显示语法错误(操作符丢失),请问是哪里出了问题呢?
还有,我屏蔽掉其他sql语句,只用sql1的时候就可以运行,为什么啊?

解决方案 »

  1.   

    sql1 := 'update 学生 set 姓名='+Quotedstr(DBEdit2.Text)
                            +' ,性别='+Quotedstr(DBEdit3.Text)
                            +' ,专业='+Quotedstr(DBComboBox1.Text)
                            +' ,学院='+Quotedstr(DBComboBox2.Text)
                            +' ,生源地='+Quotedstr(DBEdit6.Text)
                            +' ,籍贯='+Quotedstr(DBEdit7.Text)
                            +' ,民族='+Quotedstr(DBEdit8.Text)
                            +' ,生日='+Quotedstr(DBEdit10.Text)
                            +' ,入学时间='+Quotedstr(DBEdit11.Text)
              +' where 学号='+Quotedstr(DBEdit1.Text);   StudentQuery.Close;
       StudentQuery.SQL.Clear;
       StudentQuery.SQL.Add(sql1);
       StudentQuery.ExecSQL;
       StudentQuery.Close;
      

  2.   

    sql1 := 'update 学生 set 姓名='+''''+DBEdit2.Text+''''+' where 学号='+''''+DBEdit1.Text+''''
    还有为什么不把这些更新操作写在一个sql语句里面?
      

  3.   

    StudentQuery.SQL.Add(sql1);
    StudentQuery.SQL.Add(sql2);
    .....
    StudentQuery.SQL.Add(sql9);其中的SQL语句等于 SQL1+SQL2+......+SQL9
    当然会出错了。
      

  4.   

    sql1 := 'update 学生 set 姓名='''+DBEdit2.Text+''''+' where 学号='''+DBEdit1.Text+'''';
    这样比较清晰
      

  5.   

    用parameter来传递数据把,省得搂住看错“和‘