ubuntu下用c调用sqlite 结果编译不过去啊 为什么

内核编译和嵌入式产品的设计与开发
回复
ubuntu9
帖子: 1
注册时间: 2008-04-08 13:24

ubuntu下用c调用sqlite 结果编译不过去啊 为什么

#1

帖子 ubuntu9 » 2008-04-23 17:33

abc1.c:4:2: error: invalid preprocessing directive #defune
abc1.c: In function 'main':
abc1.c:17: error: missing terminating " character
abc1.c:18: error: 'ID' undeclared (first use in this function)
abc1.c:18: error: (Each undeclared identifier is reported only once
abc1.c:18: error: for each function it appears in.)
abc1.c:18: error: expected ',' or ';' before 'INTEGER'
abc1.c:23: error: missing terminating " character


代码
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
#define _DEBUG_
int main( void )
{
sqlite3 *db=NULL;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("zieckey.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
if( rc )
{
fprintf(stderr, "Can't open database: %s
", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else printf("You have opened a sqlite3 database named zieckey.db successfully!
Congratulations! Have fun ! ^-^
");
//创建一个表,如果该表存在,则不创建,并给出提示信息,存储在 zErrMsg 中
char *sql = " CREATE TABLE SensorData(
ID INTEGER PRIMARY KEY,
SensorID INTEGER,
SiteNum INTEGER,
Time VARCHAR(12),
SensorParameter REAL
);" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
#ifdef _DEBUG_
printf("%s
",zErrMsg);
#endif
//插入数据
sql = "INSERT INTO "SensorData" VALUES( NULL , 1 , 1 , '200605011206', 18.9 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
sql = "INSERT INTO "SensorData" VALUES( NULL , 1 , 1 , '200605011306', 16.4 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
sqlite3_close(db); //关闭数据库
return 0;
}
回复