读书人

sqlite 脚本编写

发布时间: 2014-01-05 18:22:55 作者: rapoo

sqlite 脚本编写 ,求高手指教!!
我要在c代码中调用: system(“sh import.sh”),我试出来在命令行中指令就是如下5条:
sqlite ./usr/pbm_db/pbm.db

.separator ","

drop table pbmtmp;

create table pbmtmp(Name TEXT,Number TEXT, Anr TEXT,Anr1 TEXT, Email TEXT,GroupID INTEGER, Group_name TEXT, Pbm_note TEXT, Location INTEGER);

.import ./usr/pbm_db/pbm1.csv pbmtmp .exit

要写成一个sh脚本,应该怎么写?还有如果脚本运行中有错误,比如运行到 .import ./usr/pbm_db/pbm1.csv pbmtmp,时返回了Error: pbm1.csv line 1: expected 10 columns of data but found 9,如何在c中捕捉到这个错误信息?
[解决办法]
sqlite的脚本可以这样写

echo "你的语句"
[解决办法]
sqlite3 数据库.db

关于错误信息,你重定向就好了在末尾加上2>&1
sh import.sh 2>&1
[解决办法]

sqlite ./usr/pbm_db/pbm.db <<EOF
.separator ","
drop table pbmtmp;
create table pbmtmp(Name TEXT,Number TEXT, Anr TEXT,Anr1 TEXT, Email TEXT,GroupID INTEGER, Group_name TEXT, Pbm_note TEXT, Location INTEGER);
.import ./usr/pbm_db/pbm1.csv pbmtmp .exit
<<EOF

[解决办法]
C语言里面你就不要system了,你用popen管道,然后在管道里面把标准输入读回来就可以了。
[解决办法]
System会有个执行返回值吧,判断下试试?

读书人网 >UNIXLINUX

热点推荐