首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有很熟悉sqlite接口的好手吗?(求查询row的完成语句)

2013-07-09 
有很熟悉sqlite接口的高手吗?(求查询row的完成语句)小弟的C++是勉强大学时候的水平,最近帮爸爸写个简单的

有很熟悉sqlite接口的高手吗?(求查询row的完成语句)
小弟的C++是勉强大学时候的水平,最近帮爸爸写个简单的数据管理,问题请看:



//这里有很多string
string WuPing = "";
string TZ1 = "";
string TZ2 = "";
string TZ3 = "";
string TZ4 = "";
string BeiZhu = "";
string JieShi = "";


result = sqlite3_open( ".\\storehouse.db",&db);
if( result != SQLITE_OK )
{
//数据库打开失败
cout << "SQLITE_NO_OK" << endl;
return -1;
}

//先把表给创建了
result = sqlite3_exec(db,"create table wordlist 
(id integer primary key autoincrement,
物品 varchar(15),特征一 varchar(50),特征二 varchar(50),特征三 varchar(50),特征四 varchar(50),
备注 varchar(150),解释 varchar(500));",0,0,&pErrMsg);

static char* insert_cmd
= "insert into storehouse(物品,特征一,特征二,特征三,特征四,备注,解释)
           values ('%s','%s','%s','%s','%s','%s','%s');";


for (int i=0,i<j,i++)//熟悉的无法再熟悉的历遍循环
{
/*****************************/
//这里省略,大量地读取文本CVS字段成string,然后做字符串判断,再合并,替换,生成新的string等等等
/*****************************/

  //很明显把这些结果都注入到一些string里了

char sql_cmd[99999];
sprintf_s(sql_cmd,insert_cmd,WuPing.data(),TZ1.data(),TZ2.data(),TZ3.data(),TZ4.data(),BeiZhu.data(),JieShi.data());

//把数据都注入到sqlite数据库文件里!
result = sqlite3_exec(db,sql_cmd,0,0,&pErrMsg);
}


  //完事。

//关闭读入文件
InFile.close();
//关闭数据库
sqlite3_close(db);




上面这些代码段呢,我是看例子摸了好久,请教高手才写出来的
数据库文件是正常的,我用了sqlite3.exe去open这个数据库文件,做一些.schema,select的操作,能看到数据

现在要着手做查询数据了,看了sqlite的C++帮助,实在是搞不懂怎么把一份数据,变回string。。。
(很不好意思地说,字符处理,只了解string,因为自带很多方法处理,而且我不要求效率,能完成就好,所以string很适合我)

譬如说,有几个row,是这样的:

select * form storehouse;

18|瓷砖|180||21||缺|2架13列|
19|角铁|50|80|XC||缺|1架3列|
20|电工胶布|3|4|||有||
21|法兰头|||||缺||
22|胶管2CM|||||有||
23|六角扳手18CM|20|20|||有||
24|胶管3CM|||||缺||
25|胶管4CM|||||缺||
26|胶管5CM|||||缺||
27|胶管6CM|||||缺||
28|胶管9CM|||||缺||


物品名称在数据库里应该是唯一的(就算有重复,也就是3,4个)

请教这些数据,
1、sqlite的接口语法应该怎么写,可以让物品“电工胶布”的七个数据段,还原回七个string呢?

2、如果检索“胶管”,那么应该会返回很多row,那么我只使用第一个返回的,能告诉我怎么写吗? SQLite String 数据库

分享到:
[解决办法]
更正:
column_names[x] 就是第 x 列的字符串.
是:
column_values[i] 才是值. column_names 是列名.
[解决办法]
有一个CppSqlite的,可以去使用这个,这个封装了sqlite的很多操作

热点排行