那句是否没有查询到记录?有什么其它办法?不明白你的意思,还有一点,如果你不用变量而字段类型又是VARCHAR型的,你可以这样写:sql.Add('select * from student where classroom=''A001''');这样提交后的语句就是 select * from student where classroom='A001'这时的两个单引号 ''其实是一个转义符,因为在字符串中用引号要用这种写法,否则就会报语法出错。你如果想知道是否有记录,先Open后再判 sql.RecordCount 是否大于 0 即可,用完别忘了sql.Close,还有问题就另开贴,这贴可以先结了。
a:='select * from student where classroom=''';//最后3个引号中的前两个对应sql的一个引号,后一个对应select的前面的一个引号,是把字符串引起来 —>select * from student where classroom='b:=ClassName; —>ClassName的值 c:='''';//中间两个引号对应sql的一个引号,外面两个引号是把字符串引起来 —> '//—>后面是对应的sql语句,这样看应该更清楚些 //sql.clear;最好加下这句,防止sql有上次遗留的语句sql.Add(a+b+c);//建议查询前先把sql.text里面的内容取出来在数据库里面查下,看看能不能查出来内容至于你的是不是没有查询到记录只能你自己找找了
var classname:string;sql.Add('select * from student where classroom=''' + ClassName + '''');如果觉得引号难分辨,可以 用QuotedStr()函数上面的语句可以 改为:sql.Add('select * from student where classroom=' + QuotedStr(ClassName));这样一目了然。