日期:2014-05-16  浏览次数:20603 次

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