Add SQL format/beautify features in your own program in 5 minutes, 10 lines code with more than 60 format options. Formatted SQL query can be in plain text, or colored, syntax highlight in RTF or HTML.
This feature is not available in Java version of General SQL Parser currently, if you need this feature in your java program, please kindly send us an email, so we will implement it in near future.
pseudo code in C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using gudusoft.gsqlparser;
using gudusoft.gsqlparser.Units;
namespace formatsql
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void setupformatoptions()
{
//for more format options, please check document
lzbasetype.gFmtOpt.Select_Columnlist_Style = TAlignStyle.asStacked;
lzbasetype.gFmtOpt.Select_Columnlist_Comma = TLinefeedsCommaOption.lfAfterComma;
lzbasetype.gFmtOpt.SelectItemInNewLine = false;
lzbasetype.gFmtOpt.AlignAliasInSelectList = true;
lzbasetype.gFmtOpt.TreatDistinctAsVirtualColumn = false;
//setup more format options ...
lzbasetype.gFmtOpt.linenumber_enabled = true;
}
private void setuphighlighterAttributes()
{
lzbasetype.gFmtOpt.HighlightingFontname = "Courier New";
lzbasetype.gFmtOpt.HighlightingFontsize = 10;
//for other elements you want to customize, please check document
lzbasetype.gFmtOpt.HighlightingElements[(int)TLzHighlightingElement.sfkIdentifer].SetForegroundInRGB("#008000");
lzbasetype.gFmtOpt.HighlightingElements[(int)TLzHighlightingElement.sfkIdentifer].StyleBold = true;
lzbasetype.gFmtOpt.HighlightingElements[(int)TLzHighlightingElement.sfkIdentifer].StyleItalic = false;
lzbasetype.gFmtOpt.HighlightingElements[(int)TLzHighlightingElement.sfkIdentifer].StyleStrikeout = false;
lzbasetype.gFmtOpt.HighlightingElements[(int)TLzHighlightingElement.sfkIdentifer].StyleUnderline = false;
//setup more elements attributes ....
}
private void btnFormatSQL_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 0;
setupformatoptions();
TGSqlParser sqlparser = new TGSqlParser(TDbVendor.DbVMssql);
sqlparser.SqlText.Text = inputsql.Text;
int i = sqlparser.PrettyPrint();
if (i == 0)
{
outputsql.Text = sqlparser.FormattedSqlText.Text;
}
else
{
outputsql.Text = sqlparser.ErrorMessages;
}
}
private void btnFormatSqlToHtml_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 1;
setupformatoptions();
setuphighlighterAttributes();
TGSqlParser sqlparser = new TGSqlParser(TDbVendor.DbVMssql);
sqlparser.SqlText.Text = inputsql.Text;
webBrowser1.DocumentText = sqlparser.ToHtml(TOutputFmt.ofhtml);
}
private void btnFormatSQLInRTF_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 2;
setupformatoptions();
setuphighlighterAttributes();
TGSqlParser sqlparser = new TGSqlParser(TDbVendor.DbVMssql);
sqlparser.SqlText.Text = inputsql.Text;
richTextBox1.Rtf = sqlparser.ToRTF(TOutputFmt.ofrtf);
}
}
}
Download this demo: C# version