VC中使用SQLite数据库如何获取查询结果集?

zc_china 2010-07-15 09:26:06
完成查表操作以后,怎样在VC里获取结果集中的值,下面是查询的代码

const char * sSQL = "select * from users;";

sqlite3 * db = 0;
char * pErrMsg = 0;
int ret = 0;

// 连接数据库
ret = sqlite3_open("./test.db", &db);

if ( ret != SQLITE_OK )
{
return(1);
}


// 查询数据表
sqlite3_exec( db, sSQL, _sql_callback, 0, &pErrMsg);

// 关闭数据库
sqlite3_close(db);
db = 0;

return 0;



我现在需要知道的是 类似于下面这段PHP代码作用的 VC代码:

$sql = "select count(*) from tb_guestbook";
$result = mysql_query($sql,$link);
if($row = mysql_fetch_array($result)){
$recordtotal = $row[0];
}

...全文
994 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zc_china 2011-04-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhangzhining123 的回复:]

你的登录怎么做了?能不能帮下忙,我的老出现异常
[/Quote]
你指的是?
zhangzhining123 2011-03-19
  • 打赏
  • 举报
回复
你的登录怎么做了?能不能帮下忙,我的老出现异常
zc_china 2010-07-23
  • 打赏
  • 举报
回复
非常感谢大家 特别是二楼

hzy694358

(雪光孤木)

好几天都忘了结贴了 不好意思
zc_china 2010-07-19
  • 打赏
  • 举报
回复
请大家帮我看下下面这个代码有什么问题,我好像修改不了数据

if(dlg.DoModal() == IDOK)
{
CString sSQL;
CSqlite *con = NULL;
con = new CSqlite;
con->Open("../Data.db3");

sSQL.Format(_T("UPDATE tb_DanyuanFengxian SET name='%s',unittype=%d,counts=%d,zhuangbeitype=%d,moshi=%d,wuzhi=%d,yuanqiang=%d WHERE id=%d;"),
dlg.m_Name,
dlg.m_UnitType,
dlg.m_Amount,
dlg.m_Shebei,
dlg.m_Moshi,
dlg.m_Wuzhi,
dlg.m_Yuanqiang,
Id);
const char * sql = sSQL.GetBuffer(0);
con->Execute(sql);
con->Close();

}
hzy694358 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zc_china 的回复:]

#pragma comment(lib,"Sqlite3.lib");
是指这个么?我照着网上的方法做了下 ,上面的问题解决
[/Quote]
yes
zc_china 2010-07-18
  • 打赏
  • 举报
回复
#pragma comment(lib,"Sqlite3.lib");
是指这个么?我照着网上的方法做了下 ,上面的问题解决
zwfgdlc 2010-07-18
  • 打赏
  • 举报
回复
很明显了,没有添加依赖库
zc_china 2010-07-18
  • 打赏
  • 举报
回复
非常感谢2楼提供的Sqlite操作类,我在Debug的时候是可以查询数据的,但是我改为Release的模式下就出现以下错误了,请大家帮我看看到底是需要怎么处理?多谢了
Linking...
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_close
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_finalize
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_open
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_errmsg
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_busy_timeout
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_exec
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_prepare
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_interrupt
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_last_insert_rowid
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_column_count
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_column_name
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_step
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_column_int
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_column_int64
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_column_double
Sqlite.obj : error LNK2001: unresolved external symbol _sqlite3_column_text
Release/ChemSA.exe : fatal error LNK1120: 16 unresolved externals
执行 link.exe 时出错.
zc_china 2010-07-15
  • 打赏
  • 举报
回复
没有人指点一下么?
FgYg 2010-07-15
  • 打赏
  • 举报
回复
_sql_callback回调函数里获取查询的结果。
_sql_callback( void * para, int n_column, char ** column_value, char ** column_name )

para:sqlite3_exec时传进来的指针。既sqlite3_exec的第四个参数,可以把保存查询结果的结构体传进来。
n_column:查询出来表的字段个数,
column_value:表字段的值,序列号以0开始。
column_name:表字段的名字,序列号以0开始。
oyljerry 2010-07-15
  • 打赏
  • 举报
回复
定义callback,然后在回调的参数中获取返回的结果.
chenglaodie 2010-07-15
  • 打赏
  • 举报
回复
static int _sql_callback(void * notused, int argc, char ** argv, char ** szColName)
{
int i;
for ( i=0; i < argc; i++ )
{
printf( "%s = %s\n", szColName[i], argv[i] == 0 ? "NUL" : argv[i] );
}

return 0;
}
hzy694358 2010-07-15
  • 打赏
  • 举报
回复
邮件已经回复
自己要实践研究
一直问很难弄清楚,我也好久没用了,
有些细节的东西也记不起来了

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧