惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
Cloudbric
Cloudbric
G
GRAHAM CLULEY
S
Securelist
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Project Zero
Project Zero
Spread Privacy
Spread Privacy
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
T
Tailwind CSS Blog
博客园_首页
有赞技术团队
有赞技术团队
Simon Willison's Weblog
Simon Willison's Weblog
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Latest news
Latest news
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
O
OpenAI News
J
Java Code Geeks
T
Tenable Blog
K
Kaspersky official blog
AWS News Blog
AWS News Blog
S
Security @ Cisco Blogs
The GitHub Blog
The GitHub Blog
T
Threatpost
月光博客
月光博客
H
Heimdal Security Blog
Security Latest
Security Latest
The Hacker News
The Hacker News
Y
Y Combinator Blog
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
C
Cisco Blogs
美团技术团队
Microsoft Security Blog
Microsoft Security Blog
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
C
CERT Recently Published Vulnerability Notes
D
Docker
Google Online Security Blog
Google Online Security Blog
D
DataBreaches.Net
V
Visual Studio Blog
H
Help Net Security

博客园 - zeus2

Xfire的初次使用 SQl Server 2012正式版发布 单例模式的三种实现方法 Oracle常用Hint Oracle 设计海量数据库 读书笔记(三) Oracle 设计海量数据库 读书笔记(二) Oracle 设计海量数据库 读书笔记(一) 解决中文ID3标签乱码zz 系统架构性能提高方案! 使用开源工具架设开发平台 修改SQL Server数据库地址 System.DateTimeOffset Load的问题 关于__doPostBack之前截获调用 - zeus2 - 博客园 当应用程序发布到iis7/iis7.5出现需要使用经典模式时 - zeus2 - 博客园 [读书笔记]SQL技术内幕Identity XML序列化封装 根据实体类生成查询安全版 生活太艰难了。!!! 从底层角度看ASP.NET-A low-level Look at the ASP.NET Architecture(转载)
C++访问Sqlite数据库(存档) - zeus2 - 博客园
zeus2 · 2008-11-09 · via 博客园 - zeus2

#include "stdafx.h"

#include "sqlite3.h"

sqlite3 * pDB;

int createTable()

{

    char* errMsg;

    std::string dropTab = "drop table test_tab;";

    string strSQL= "create table test_tab (f1 int, f2 long);";

    int res= sqlite3_exec(pDB , dropTab.c_str() , 0 , 0 , &errMsg);

    if (res != SQLITE_OK)

    {

        std::cout << "执行SQL 出错." << errMsg << std::endl;

        return -1;

    }

    res = sqlite3_exec(pDB , strSQL.c_str() ,0 ,0, &errMsg);

    if (res != SQLITE_OK)

    {

        std::cout << "执行创建tableSQL 出错." << errMsg << std::endl;

        return -1;

    }

    else

    {

        std::cout << "创建tableSQL成功执行."<< std::endl;

    }

    return 0;

}

int insert1()

{

    char* errMsg;

    int res = sqlite3_exec(pDB,"begin transaction;",0,0, &errMsg);

    for (int i= 1; i < 10; ++i)

    {

        std::stringstream strsql;

        strsql << "insert into test_tab  values(";

        strsql  << i << ","<< (i+10) << ");";

        std::string str = strsql.str();

        res = sqlite3_exec(pDB,str.c_str(),0,0, &errMsg);

        if (res != SQLITE_OK)

        {

            std::cout << "执行SQL 出错." << errMsg << std::endl;

            return -1;

        }

    }

    res = sqlite3_exec(pDB,"commit transaction;",0,0, &errMsg);

    std::cout << "SQL成功执行."<< std::endl;

    return 0;

}

static int callback(void *NotUsed, int argc, char **argv, char **azColName)

{

    for(int i = 0 ; i < argc ; i++)

    {

        std::cout << azColName[i] << " = " << (argv[i] ? argv[i] : "NULL") << ", " ;

    }

    std::cout<< "\n";

    return 0;

}

int select1()

{

    char* errMsg;

    string strSQL= "select * from test_tab;";

    int res = sqlite3_exec(pDB, strSQL.c_str(), callback , 0 , &errMsg);

    if (res != SQLITE_OK)

    {

        std::cout << "执行SQL 出错." << errMsg << std::endl;

        return -1;

    }

    else

    {

        std::cout << "SQL成功执行."<< std::endl;

    }

    return 0;

}

int _tmain(int argc, _TCHAR* argv[])

{

    int res = sqlite3_open("D:\\sql.db", &pDB);

    if( res ){

        std::cout << "Can't open database: "<< sqlite3_errmsg(pDB);

        sqlite3_close(pDB);

        return -1;

    }

    res = createTable();

    if (res != 0)

    {

        return 0;

    }

    res = insert1();

    if (res != 0)

    {

        return 0;

    }

    select1();

    getchar();

    return 0;

}