我正在编写一个嵌入TCL的C ++应用程序,对于它的数据库操作,我也在其中嵌入了SQLite。我希望能够做到以下几点:
我很感激建议。
答案 0 :(得分:1)
Tcl 8.6应附带SQLite接口的构建版本sqlite3
。但是,没有(官方)方法从包中使用C ++代码共享数据库连接;包中没有API可以从C ++调用来获取连接。 正式的解决方法是从您的C ++代码创建另一个连接,除非您在两种语言绑定中的查询之间进行奇怪的混合,否则不应过于繁琐,非常不是正常使用案例。
您可以使用Tcl_GetCommandInfo()
来检索Tcl数据库句柄命令的ClientData
字段等。然后可以将其转换为指向第一个字段为sqlite3*
句柄的结构的指针,就像使用sqlite3_open()
获得的那样。哪个凌乱和脆弱。此外,您仍然需要遵守通常的规则,例如需要保持单个线程。这真的不是我推荐的!