小编Mic*_*Man的帖子

在C++中正确使用sqlite3的回调函数

我有以下C++代码与SQLite3一起用于测试目的.它是一个customer声明了回调函数的类.只要sqlite3_exec()从SQLite数据库返回结果(记录),就会调用此回调函数.

我不喜欢这种结构的是,处理结果的源代码位于类之外的回调函数中,而不是由sqlite3_exec()调用的类方法处理的结果.

在回调函数完成从SQL查询结果中提取值之后,我可以使用将在类方法中使用的全局变量.但是如果有多个记录并且多次调用回调函数会怎么样呢.然后我需要使用数组,除非我确保我只有单个结果.

我是否需要忘记回调函数并深入调用SQLite API?

或者我是否需要转到C++包装器,我想那里没有回调机制,结果会传递回类方法本身?

// customer
#include "Customer\customer.h"
//## begin module%50E6CCB50119.additionalDeclarations preserve=yes
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
  int i;
  char* columnName;
  char* columnValueString;
  short int columnValueShortInt = 0;
  int columnValueInt = 0;

  cout << "begin of callback function\n";

  for(i=0; i<argc; i++)
  {
    columnName = azColName[i];
    if (strcmp(columnName, "FirstName")==0 || strcmp(columnName, "LastName")==0)
    {
      columnValueString = argv[i];
      cout << "columnName = " << columnName << "; value = …
Run Code Online (Sandbox Code Playgroud)

c++ sqlite

13
推荐指数
2
解决办法
2万
查看次数

如何将浮点转换为字符串

如何将浮点转换为字符串,并在浮点为圆数时添加2位小数.目前我正在使用以下内容,但对于整数,我希望添加.00.我需要为此编写自己的例程吗?

float floatingNumber = 1.00;
string string;
ostringstream stream;

stream << floatingNumber;
string += stream.str(); // result is 1 not 1.00
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
1
解决办法
833
查看次数

标签 统计

c++ ×2

sqlite ×1