提交 a88e252f 编写于 作者: S Serge Rider 提交者: GitHub

Merge pull request #11176 from fernandormoraes/devel

Copy SQL as Source Code: Delphi - StringList option

Former-commit-id: 866c767a
......@@ -43,6 +43,7 @@
<target id="delphi" label="Delphi" description="%sql.convert.delphi.description" class="org.jkiss.dbeaver.ui.editors.sql.convert.impl.DelphiSQLConverter">
<property id="keep-formatting" label="%sql.convert.label.keep.formatting.name" type="boolean" description="%sql.convert.label.keep.formatting.discription" required="false" defaultValue="false"/>
<property id="line-delimiter" label="%sql.convert.label.line.delimiter.name" type="string" description="%sql.convert.label.line.delimiter.delphi.discription" required="false" defaultValue="#13#10"/>
<property id="use-string-builder" label="%sql.convert.label.use.string.builder.name" type="boolean" description="%sql.convert.label.use.string.builder.description" required="false" defaultValue="false"/>
</target>
<target id="html"
label="HTML"
......
......@@ -25,11 +25,20 @@ import java.util.Map;
* DelphiSQLConverter
*/
public class DelphiSQLConverter extends SourceCodeSQLConverter {
public static final String OPTION_USE_STRING_BUILDER = "use-string-builder";
@Override
protected void convertSourceLines(StringBuilder result, String[] sourceLines, String lineDelimiter, Map<String, Object> options) {
boolean useStringBuilder = CommonUtils.toBoolean(options.get(OPTION_USE_STRING_BUILDER));
boolean trailingLineFeed = lineDelimiter.startsWith("#");
if(useStringBuilder) {
result.append("Query := TStringList.Create;\n");
}
for (int i = 0; i < sourceLines.length; i++) {
if (useStringBuilder) {
result.append("Query.Add(");
}
String line = sourceLines[i];
result.append('\'').append(CommonUtils.escapeJavaString(line));
if (!trailingLineFeed) {
......@@ -39,10 +48,10 @@ public class DelphiSQLConverter extends SourceCodeSQLConverter {
if (trailingLineFeed) {
result.append(lineDelimiter);
}
if (i < sourceLines.length - 1) {
if ((i < sourceLines.length - 1) && (!useStringBuilder)) {
result.append(" + \n");
} else {
result.append(";");
result.append(");\n");
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册