ZJID:=SDXT_CT.Selected.Text;
...................
ST_ADOQ.SQL.Add('select TypeID AS 类型,TM AS 题目,CZ AS 出自章节 From XuanZeTi');
ST_ADOQ.SQL.Add('where CZ=ZJID');
参数zjid没有默认值
...................
ST_ADOQ.SQL.Add('select TypeID AS 类型,TM AS 题目,CZ AS 出自章节 From XuanZeTi');
ST_ADOQ.SQL.Add('where CZ=ZJID');
参数zjid没有默认值
ST_ADOQ.SQL.Add('where CZ='+QuotedStr(ZJID));
ST_ADOQ.SQL.Add('select TypeID AS 类型,TM AS 题目,CZ AS 出自章节 From XuanZeTi');
ST_ADOQ.SQL.Add('where CZ=:ZJID');ST_ADOQ.Parameters.ParamByName('ZJID').Value := ZJID;
ST_ADOQ.Open;
第二个是要对参数赋值:
ST_ADOQ.SQL.Add(' where CZ=:ZJID');
ST_ADOQ.Parameters.ParamByName('ZJID').Value := ZJID;
因为每ADD一次sql语句就增长一次,如果where前面没有空格的话,那这句SQL语句就成了:
select TypeID AS 类型,TM AS 题目,CZ AS 出自章节 From XuanZeTiwhere CZ=ZJID
肯定不对。
(2)关于sql语句中的参数问题:
就是用“=:”表示后面的为参数,可以为任意字符后字符串,也不用预先定义,只要在
ST_ADOQ.Parameters.ParamByName中说明就可以了。
还有一种方法是在ADOQuery的属性中说明参数,但用起来很不方便。