Delphi - 如何将字符串连接分成几行

时间:2012-03-12 07:52:09

标签: delphi delphi-2010 code-formatting line-breaks

我有一个很长的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个字符)”错误。有趣的是,所有这些都不会发生这种情况。我无法理解受影响的线和不受影响的线之间的区别。我需要在“+”符号之后或之前换行。我该怎么做?

2 个答案:

答案 0 :(得分:14)

您也可以使用添加功能。

SQL.Clear;
SQL.ADD('SELECT T1.COLUMN1,T2.COLUMN2,T1COLUMN3..........,');
SQL.ADD(' T1.COLUMNn FROM TABLE1 T1 INNER JOIN');
SQL.ADD(' TABLE2 T2 ON T1.ID=T2.ID');
SQL.ADD(' WHERE T1.COLUMN10=100');

答案 1 :(得分:-1)

尝试在每一行中分配值:

SQL.Text := 'SELECT T1.COLUMN1,T2.COLUMN2,T1COLUMN3..........,';
SQL.Text := SQL.Text + ' T1.COLUMNn FROM TABLE1 T1 INNER JOIN ';
SQL.Text := SQL.Text + ' TABLE2 T2 ON T1.ID=T2.ID';
SQL.Text := SQL.Text + ' WHERE T1.COLUMN10=100';

我知道它看起来很难看,但我认为它解决了你的问题。