你可以写自己漂亮的打印机。在这种情况下,它不会很难。只需更换的东西像下面这样:
"FROM" -> "\nFROM"
"WHERE" -> "\nWHERE"
"," -> ",\n\t"
"AND" -> "AND\n\t"
"OR" -> "OR\n\t"
等
编辑:你不编码,这里有此功能的小版本。
#include <string>
using std::string; /* put these lines in the top of your file */
string replace(string a, string b, string c) {
unsigned x;
for(x = a.find(b); x != string::npos;) {
a.erase(x, b.length());
a.insert(x, c);
}
return a;
}
string formatSQL(string sql) {
replace(sql, "FROM", "\nFROM");
replace(sql, "WHERE", "\nWHERE");
replace(sql, "," , ",\n\t");
replace(sql, "AND", "AND\n\t");
replace(sql, "OR", "OR\n\t");
}
所以调用formatSql("SELECT MEMB.NAME, MEMB.AGE, AGE.GROUP FROM MEMB, AGE WHERE MEMB.AGE = AGE.AGE")
可以给你想要的结果。
对于那些不知道“sqlparse”是什么的人 - 以什么方式格式化它?请举一个例子。 – 2011-05-09 16:15:38
嗯,为什么不直接用那种方式写呢?你为什么需要一个工具?我会认为输入键和空格键会成为你需要的所有工具。我想我错过了这个问题的重点。 – Jay 2011-05-09 16:25:33
那么,我不想写任何这样做的函数。首先是因为代码不是我的,其次是因为我没有用C++编写代码。我只需要一个函数,就像我之前提到的模块中的格式方法。 – 2011-05-09 16:28:49