当前位置:  技术问答>linux和unix

数据库问题请求帮忙

    来源: 互联网  发布时间:2016-10-13

    本文导语:     我写了一个sqlite的数据库操作接口,如下: int exec_sql(char *db_name, char *sql, char *parm1, ...) { sqlite3 *db = NULL; int rc; rc = sqlite3_open(db_name, &db);       if (SQLITE_OK != rc) { printf("%s(line:%d): %s",  __FILE__, ...

   我写了一个sqlite的数据库操作接口,如下:
int exec_sql(char *db_name, char *sql, char *parm1, ...)
{
sqlite3 *db = NULL;
int rc;

rc = sqlite3_open(db_name, &db);      
if (SQLITE_OK != rc)
{
printf("%s(line:%d): %s",  __FILE__, __LINE__, "cann't open or create database");
return SQLITE_ERROR;
}


sqlite3_stmt *stmt = NULL;
rc = sqlite3_prepare(db, sql, -1, &stmt, NULL);
if(SQLITE_OK != rc) 
{
printf("%s(line:%d): %s",  __FILE__, __LINE__,  sqlite3_errmsg(db));
return SQLITE_ERROR;
}

va_list arg_ptr;
char *ptr = parm1;
va_start(arg_ptr, parm1);
int index = 1;
while (ptr != NULL)
{

sqlite3_bind_text(stmt, index, ptr, -1, SQLITE_STATIC);  
/*get the next param*/
ptr = (char *)va_arg(arg_ptr, char *); 
index++;
}
va_end(arg_ptr);  

rc = sqlite3_step(stmt);
if( rc != SQLITE_DONE) 
{
printf("%s(line:%d): %s",  __FILE__, __LINE__,  sqlite3_errmsg(db));
return SQLITE_ERROR;
}

sqlite3_finalize(stmt);
sqlite3_close(db);
return SQLITE_OK;
}

这个函数只能执行象insert, delete等无数据返回的sql 语句,第一个参数为连接数据库的名称, 第二个参数为带“?”的sql 语句, 比如: insert   into  userinfo(?,?,?,?), 后面的变参依次为sql语句中“?”处所对应的值, 这样就可以把一些特殊字符插入数据库了。

   不过我现在想用同样的预编译sqlite3_prepare方法写一个执行select的接口函数,
接口申明如下:char **exec_select_sql(char *db_name,  int *nrow,   int *ncolumn,  char *sql,  char *parm1,  ...  )
参数db_name为数据库名称, nrow为检索到的行数, ncolumn为检索到的列数, 后面的参数同exec_sql(),最终将检索到的结果集以char **的形式返回,请问这个函数的代码该怎么实现啊? 哪位高手能帮忙实现一下? 万分感激, 我刚看sqlite,对其中的很多库函数都不熟悉。

char **exec_select_sql(char *db_name,  int *nrow,   int *ncolumn,  char *sql,  char *parm1,  ...  )
{
           //此处该怎么写啊?
}


|
char **pResult = (char**)calloc(4*nColumnCount,4);

for(int i=0; i

    
 
 

您可能感兴趣的文章:

  • Jbuilder中如何建立与SQL Server数据库的连接?(Jbuider高手请帮忙!)
  • 如何关闭窗口时触发执行数据库操作?急!请帮忙!
  • 占用一下,小弟想到深圳发展,有一年JAVA开发经验,熟悉oracle数据库,哪位在深圳的兄弟帮忙介绍个工作,我的QQ:9182647,谢谢了!
  • JDBC数据库编程,快来帮忙
  • 一段简单的数据库调用代码!请大虾帮忙看看!!
  • 在jsp或servlet中如何从oracle数据库中提取并显示图像,帮帮忙。很急的。
  • 各位帮忙,从没用过Java...关于数据库
  • 连接数据库失败,请帮帮忙!
  • applet连接数据库,写了一个policy文件,用appletviewer可以browse,但是如何在ie和nc中带那个policy文件?请各位帮忙一下...
  • 老板催得急啊,各位好心人,帮帮忙吧如何在jsp中把word文档上传到oracle数据库
  • 兄弟姐妹们帮帮忙,如何将一个字符数据写入数据库,急急急急急急急 在线等待
  • 请问怎么修改数据库和表的UPDATE属性为YES 拜托各位大虾帮帮忙 我向您敬礼了
  • 数据库链接问题,我是找不出了,帮忙吧各位!
  • 求助!关于多线程下数据库操作的问题,请大家帮忙看看
  • SOS!!!环境:Tomcat4+Oracle8i;链接数据库失败,请各位大虾帮忙指正
  • 数据库中正常,在JSP中显示好象为十六进制数,帮忙解决
  • 帮忙看看数据库的程序,运行不出来
  • 请高手帮忙看一下,为什么连不上数据库啊!!!!!!!!在线等待
  • applet连接数库时,不同的htm格式导致无法连接数据库?兄弟们帮忙看一下
  • 为什么在JSP里连接数据库会抛出异常呢?请帮忙看看。。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 基于Key-Value的NOSQL数据库Redis的数据结构及常用相关命令介绍
  • 如何监控数据库的数据,如果数据库数据更改,就通知Server
  • 文档数据库mongodb与列式数据库hbase详细比较
  • 如何从数据库中或文本文件中提取数据到另一个数据库中?
  • SQL Server 2008如何进行数据库分离和附加详细介绍
  • 用JDBC连接Oracle数据库时,如何向数据库中写日期型数据(格式)?谢了!
  • nosql数据库levedb介绍及levedb最新版1.18下载安装
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 散分:Jbuilder6开发数据库应用请问你们都用什么数据库? 免费的数据库有那些?
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • 数据在页面写不进数据库,也不可以从数据库中读出是什么原因?
  • ORACLE数据库常用字段数据类型介绍
  • mysql 本地数据库如何从远程数据库导数据
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 公司要给客户做报表,从数据库返回数据,他们死活要返回的格式为Excel格式,请问我怎样才能把数据库返回的数据存为Excel的格式?
  • 删除数据库中重复记录方法介绍及代码参考
  • 开发java下的数据库程序,用什么数据库引擎?
  • Mongodb数据库服务的开启与关闭详细介绍
  • 请问各位朋友:在JAVA的数据库应用管理系统中,如何不在操作系统忠建立数据源便能连接数据库(如ACCESS、MS SQL 等等
  • 如何实现 coreos 下Docker 与分布式数据库结合
  • sql 语句 取数据库服务器上所有数据库的名字
  • sql数据库如何查询修改数据库恢复模式?
  • 应该怎么样将一个对象放入到数据库里?还有怎么将图片放进数据库?急~~
  • sql server 2005删除用户时“数据库主体在该数据库中拥有架构,无法删除”错误的解决办法
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • 使用php语句将数据库*.sql文件导入数据库
  • sql数据库修改数据库用户
  • java数据库连接池和数据库连接示例
  • 对数据库的查询结果resultset进行修改后,怎么将修改的信息传回给数据库
  • java中的数据库结果集可以被赋值吗,可以通过结果集的方法来更新数据库字段吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3