我有一个很长的SQL文本,我想分配给查询SQL。我这样做的方式如下:德尔福 - 如何将字符串连接分成几行
SQL.Text:= 'SELECT T1.COLUMN1,T2.COLUMN2,T1COLUMN3..........,'+
' T1.COLUMNn FROM TABLE1 T1 INNER JOIN '+
' TABLE2 T2 ON T1.ID=T2.ID'+
' WHERE T1.COLUMN10=100'
实际的SQL比这个长20倍。我的问题是换行符。当我格式化源代码(按Ctrl + d)有时离开行,因为我打字,但有时它会删除换行符,我得到这样的:
'SELECT T1.COLUMN1,T2.COLUMN2,T1COLUMN3 ' + 'FROM TABLE1 T1 INNER JOIN '+ 'TABLE2 T2 ON T1.ID=T2.ID'
,这导致了“太行长(超过1023个字符)“错误。有趣的是,这不会发生在所有行中。我无法理解将受到影响和不会影响的区别。我需要在“+”号之后或之前换行。我该怎么做呢?
什么值的Formatter - > Delphi - >换行符 - >右边距你有吗?默认值(我记得)是80. – teran 2012-03-12 08:20:14
你真的需要在代码中编写长的sql吗?您可以在数据库中创建存储过程,或将SQL保存在查询组件(即在dfm文件中)或从其他文件或资源加载。 – teran 2012-03-12 08:37:06
@teran,右边距是60.但是不管什么价值,这个问题都不会发生在所有的行上。我知道你的SP是最好的选择。我完全同意。 – 2012-03-12 10:23:31