我用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的时候就可以运行,为什么啊?
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的时候就可以运行,为什么啊?
+' ,性别='+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;
还有为什么不把这些更新操作写在一个sql语句里面?
StudentQuery.SQL.Add(sql2);
.....
StudentQuery.SQL.Add(sql9);其中的SQL语句等于 SQL1+SQL2+......+SQL9
当然会出错了。
这样比较清晰