Sqllitepp类库 简单操作

对sqlitepp 类库进行了研究
现在把sqlitepp 简单的 使用实例发出来 大家学学




/* step0 init - *******************
*first check del file Testsqlite.db*/


const wchar_t *filename=L"./Testsqlite.db";
const wchar_t *sqlc1=L"CREATE TABLE IF NOT EXISTS \"settingint\" (\"hkey\" TEXT,\"sect\" TEXT,\"sval\" INTEGER)";
const wchar_t *sqlc2=L"CREATE TABLE IF NOT EXISTS \"settingstring\" (\"hkey\" TEXT, \"sect\" TEXT, \"vstring\" TEXT)";


const wchar_t *sqlc3 = L"CREATE TABLE IF NOT EXISTS \"settingbin2\" (\"skey\" TEXT, \"sect\" TEXT, \"vdata\" BLOB)";


const wchar_t *sqlc4 = L"CREATE UNIQUE INDEX IF NOT EXISTS \"pkey\" on settingint (hkey ASC, sect ASC)";
const wchar_t *sqlc5 = L"CREATE UNIQUE INDEX IF NOT EXISTS \"pkeystring\" on settingstring (hkey ASC, sect ASC)";
const wchar_t *sqlc6 = L"CREATE UNIQUE INDEX IF NOT EXISTS \"pkeybin\" on settingbin2 (skey ASC, sect ASC)";






//定义
TCHAR path[MAX_PATH] = {0};
::GetModuleFileName(NULL,path,MAX_PATH);
CStringW strSQL(path);
strSQL.Replace(_T("TestSqlite.exe"),_T("Testsqlite.db"));


int i=0;
std::wstring sql,sql2,sql3,sql4,sql5;
SQLliteapp p(strSQL.GetBuffer()); //构造会创建数据库文件




/* step1 : Create Table 执行sql语句 创建表 字段 数值*/
p.exec_sql(sqlc1);
p.exec_sql(sqlc2);
p.exec_sql(sqlc3);
p.exec_sql(sqlc4);
p.exec_sql(sqlc5);
p.exec_sql(sqlc6);


std::wstring str1=L"hello";
std::wstring str2=L"world";






/* step2 int-test *******************
*
* write int - WriteProfileInt
get int - GetProfileInt compare 写入 读取整形数值 比较
************************************/
{
int geti1=1;
int geti2=100;


geti1=p.WriteProfileInt(str2.c_str(),str1.c_str(),-10,false);


int test01=p.GetProfileInt(str2.c_str(),str1.c_str(),10,false);


if(geti1)
printf("pass -- 1 \n");
else
printf("fail -- 1 \n");


p.WriteProfileInt(str1.c_str(),str2.c_str(),geti2,false);
geti1=p.GetProfileInt(str1.c_str(),str2.c_str(),-1,false);
if(geti2==geti1)
printf("pass -- 2 \n");
else
printf("fail -- 2 \n");
}




/* step3 string-test ***************
*
* write str - WriteProfileString
get str - GetProfileString
compare 写入 读取 字符集比较
************************************/
{
std::wstring str3s1, str3s2;
str3s1 = L"ss";
str3s2 = L"hello你好\n";
str3s1 = p.GetProfileString(str2.c_str(), str1.c_str(),L"xx",false);


if(str3s1 == L"xx")
printf("pass--3\n"); // ok
else
printf("fail--3\n");




p.WriteProfileString(str1.c_str(), str2.c_str(), str3s2.c_str());
str3s1 = p.GetProfileString(str1.c_str(), str2.c_str(), L"xx",false);


if(str3s1.compare(str3s2) == 0)
printf("pass--4\n"); // ok
else
printf("fail--4\n");
}




/* step4 binrary-test **************
*
* write bin
get bin - donot forget new/delete 写入 读取 二进制文件
**************************************/
{
char *pp = 0; //donot forget new/delete
char buf[100];
char str3[] = "hello4";
char str4[] = "world4";


for(i=0;i<80;i++)
{
buf[i] = i * 3 % 5 + 2;
}


int bPass=0; //成功的话 bPass 返回个数
p.GetProfileBinary(str2.c_str(), str1.c_str(),(LPBYTE*)&pp,(UINT*)&bPass,false);


if( bPass == 0 )
printf("pass--5 bin\n");
else
printf("fail--5 bin\n");


if(i>0 && pp)
{
delete[] pp;
pp = NULL;
}




p.WriteProfileBinary(str1.c_str(), str2.c_str(), (LPBYTE)buf, 80); //w 80 BYTE
p.GetProfileBinary(str1.c_str(), str2.c_str(), (LPBYTE*)&pp, (UINT*)&bPass, false); //成功的话 bPass 返回个数


if(memcmp(pp,buf,30) == 0)
printf("pass--6 bin\n");
else
printf("fail--6 bin\n");


if(bPass>0 && pp)
{
delete[] pp;
pp = NULL;
}
}







































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值