gpt4 book ai didi

c++ - cpp - sqlite3 如何正确绑定(bind) `char` 类型并从数据库中读取它

转载 作者:行者123 更新时间:2023-11-30 02:42:07 27 4
gpt4 key购买 nike

如何绑定(bind)简单的 char char_type; 并从 sqlite3 数据库中读回?

 char char_type;
char_type = 'V';
sqlite3_bind_text(stmt, 1, char_type); // error: invalid conversion from 'char' to 'const char*'

/usr/local/include/sqlite3.h:3430: 错误:函数参数太少 'int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int, void ()(void ))'

 // read it back?
char_type = reinterpret_cast<char*> ( sqlite3_column_text(stmt, 1) );

最佳答案

SQLite 没有字符类型,只有字符串类型。所以你必须让它看起来像一个字符串:

// bind
sqlite3_bind_text(stmt, /* column */ 1, &char_type, 1, SQLITE_TRANSIENT);

// read
char_type = sqlite3_column_text(stmt, 1)[0];

或者,如果您知道您的所有数据始终是一个字符,那么使用整数并在输入和输出时简单地转换它几乎肯定会更有效:

// bind
sqlite3_bind_int(stmt, /* column */ 1, (int)char_type);

// read
char_type = (char)sqlite3_column_int(stmt, 1);

关于c++ - cpp - sqlite3 如何正确绑定(bind) `char` 类型并从数据库中读取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27390383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com