C语言访问SQLite数据库报错
利用SQLite官方的sqlite3.h头文件和sqlite.c实现,添加到项目中。然后#include<stdio.h>#include"sqlite3.h"stati...
利用SQLite官方的sqlite3.h头文件和sqlite.c实现,添加到项目中。然后
#include <stdio.h>
#include "sqlite3.h"
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int i;
int rc;
if(argc!=3){
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
return(1);
}
rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return(1);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
}
VC++6.0中编译、链接都没问题,因为要输入参数,所以DOS命令下切到项目Debug目录下,运行:connSQLite d:\temp\test.db "select * from contact;" 总无法运行,事实上是调用sqlite3_open()时出的问题,但这个函数是官方提供的接口,所以不知道怎么办。 QQ:656117493 展开
#include <stdio.h>
#include "sqlite3.h"
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int i;
int rc;
if(argc!=3){
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
return(1);
}
rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return(1);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
}
VC++6.0中编译、链接都没问题,因为要输入参数,所以DOS命令下切到项目Debug目录下,运行:connSQLite d:\temp\test.db "select * from contact;" 总无法运行,事实上是调用sqlite3_open()时出的问题,但这个函数是官方提供的接口,所以不知道怎么办。 QQ:656117493 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询