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会有个执行返回值吧,判断下试试?