首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

sqlite 脚本编写 ,

2014-01-05 
sqlite 脚本编写 ,求高手指教!!我要在c代码中调用: system(“sh import.sh”),我试出来在命令行中指令就是如

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

热点排行