//定义SQL语名变量procedure TForm1.Button1Click(Sender: TObject); var str1:string; begin str1:='select * from 表名' str1:=str1+' where 字段名='条件值''; //还有的话继续写str1:=str1+... adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add(str1); adoquery1.Open; end;
可以直接这样写:Str := 'Select * from table1 ' + ' where .....' + ' and ......' + ' order by .....' 即直接在后面用+连接即可
to: zsjzwj(北极熊) 你的方法,固然可以,但不能否认别人方法! 你不会是写程序总是想着在sql查询器调吧, 即使在里面调也没关系,你在sql查询器中截断分行也未尝不可!
to hqhhh(枫叶) : 有时一句sql 就有一两屏,多达几千字符,自己截的话,一句就要用一个小时呀!还要考虑嵌套、多重嵌套,那么这句话调好要多久? sql语句如果发生错误,用sql查询器调是最方便快捷的,不是吗?
Str := 'Select * from table1 ' + ' where .....' + ' and ......' + ' order by .....' 这样写是可以的,如果"有时一句sql 就有一两屏,多达几千字符,自己截的话,一句就要用一个小时呀!还要考虑嵌套、多重嵌套" 那就在adoquery1.sql.add(str)之前加上一句:edit1.text:=str;或者直接输出到文本(比如日志),然后拷出来调试,找出错误再回去改源代码说起来麻烦,调起来很简单,我们一直都是这么做的
+' where ……'+#13
+' and ……';
adoquary.sql.text:='少于255个SQL语句';
adoquary.sql.text:=adoquary.sql.text+'and (超长的语句)';
var str1:string;
begin
str1:='select * from 表名'
str1:=str1+' where 字段名='条件值'';
//还有的话继续写str1:=str1+...
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(str1);
adoquery1.Open;
end;
' where .....' +
' and ......' +
' order by .....'
即直接在后面用+连接即可
http://www.anylib.com
你的方法,固然可以,但不能否认别人方法!
你不会是写程序总是想着在sql查询器调吧,
即使在里面调也没关系,你在sql查询器中截断分行也未尝不可!
sql语句如果发生错误,用sql查询器调是最方便快捷的,不是吗?
' where .....' +
' and ......' +
' order by .....'
这样写是可以的,如果"有时一句sql 就有一两屏,多达几千字符,自己截的话,一句就要用一个小时呀!还要考虑嵌套、多重嵌套"
那就在adoquery1.sql.add(str)之前加上一句:edit1.text:=str;或者直接输出到文本(比如日志),然后拷出来调试,找出错误再回去改源代码说起来麻烦,调起来很简单,我们一直都是这么做的
超过255个字节会报什么错?
sql.add('.....');
sql.add('.....');
sql.add('.....');
sql.add('.....');写多少字都可以,sql是个Tstrings类。
-----------
有时一句sql 就有一两屏,多达几千字符,自己截的话,一句就要用一个小时呀!还要考虑嵌套、多重嵌套,那么这句话调好要多久?
sql语句如果发生错误,用sql查询器调是最方便快捷的,不是吗?
------------------- sql语句如果发生错误,用sql查询器调是最方便快捷的,这个是不可否认的!
但 如果一句sql 有一两屏,多达几千字符,如果再不考虑用视图或存储过程之类写,就不可思议了!
哈哈哈