4

我正在运行 Linux,并编写了在 sqlite3 中创建和打开数据库的代码。然后,该代码会创建一些带有一些虚拟条目的虚拟表。完成后,我运行

sqlite3 test.db < ./sqliteauto.sql

我的 sqliteauto.sql 代码如下:

--general settings
.headers on
.mode columns

--people table
.width 3 6 4
select * from PEOPLE; 

--state table
.width 3 11 5
select * from STATES;
.quit

这将返回我在 sqliteauto.sql 中编码的具有正确间距和列宽的两个虚拟表和值。唯一的问题是表的最后一个条目流入下一个表的列标题。

它看起来像这样:

ID1     NAME     AGE
-----   ------   ----
1       Steve    25
2       Chris    30
ID2     STATE    ABRV
-----   ------   -----
1       Texas    TX
2       Georgia  GA

我应该在我的 sqliteauto.sql 代码中添加什么以在表之间插入新行以使其在命令提示符中更好地显示,如下所示:

ID1     NAME     AGE
-----   ------   ----
1       Steve    25
2       Chris    30


ID2     STATE    ABRV
-----   ------   -----
1       Texas    TX
2       Georgia  GA
4

2 回答 2

0

要使sqlite3工具输出空行,请使用命令.print ''

于 2013-06-17T13:18:32.100 回答
0

好的,在 SQLite 页面上进行了多次搜索后,我发现了这个..

http://www.sqlite.org/c3ref/mprintf.html

例如,假设字符串变量 zText 包含如下文本:

char *zText = "今天是快乐的一天!"; 可以在 SQL 语句中使用此文本,如下所示:

char *zSQL = sqlite3_mprintf("INSERT INTO table VALUES('%q')", zText); sqlite3_exec(db, zSQL, 0, 0, 0); sqlite3_free(zSQL);

问题是如何实施?我假设您正在从外部文件运行脚本。

正如文档所说, mprintf 就像 C printf 您应该能够使用它直接打印到输出。

尝试类似的东西

sqlite3_mprintf("___    ____")

当然我可能是错的,你必须尝试一下......

大卫

于 2013-06-17T14:39:16.260 回答