Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlite3在C+中+;(带表及其索引的存储过程或复杂sql) 我在我的C++应用程序中尝试了SqLITE3。我已经做了: sqlite3 my.db sqlite>创建表链接(UrlAsID VARCHAR(255)主键,所有者VARCHAR(255),…,CreationTime整数) sqlite>在链接上创建索引链接(UrlAsID、CreationTime ASC) 然后我打开了一个从C++代码到数据库的连接。_C++_Sqlite - Fatal编程技术网

sqlite3在C+中+;(带表及其索引的存储过程或复杂sql) 我在我的C++应用程序中尝试了SqLITE3。我已经做了: sqlite3 my.db sqlite>创建表链接(UrlAsID VARCHAR(255)主键,所有者VARCHAR(255),…,CreationTime整数) sqlite>在链接上创建索引链接(UrlAsID、CreationTime ASC) 然后我打开了一个从C++代码到数据库的连接。

sqlite3在C+中+;(带表及其索引的存储过程或复杂sql) 我在我的C++应用程序中尝试了SqLITE3。我已经做了: sqlite3 my.db sqlite>创建表链接(UrlAsID VARCHAR(255)主键,所有者VARCHAR(255),…,CreationTime整数) sqlite>在链接上创建索引链接(UrlAsID、CreationTime ASC) 然后我打开了一个从C++代码到数据库的连接。,c++,sqlite,C++,Sqlite,在代码中我有一个Url对象。现在我要做的是: // check if url is in index (and in table as well) string urlID = sqlite3_exec("SELECT UrlAsID FROM linkIDs WHERE UrlAsID = " + Url.id + ";"); if (urlID.empty()) { sqlite3_exec("INSERT INTO links VALUES (" + Url.properties

在代码中我有一个Url对象。现在我要做的是:

// check if url is in index (and in table as well)
string urlID = sqlite3_exec("SELECT UrlAsID FROM linkIDs WHERE UrlAsID = " + Url.id + ";");
if (urlID.empty()) {
    sqlite3_exec("INSERT INTO links VALUES (" + Url.properties + ");");
    sqlite3_exec("INSERT INTO linkIDs VALUES (" + Url.id + "," + int(Url.creationTime) + ");");
} else {
    sqlite3_exec("UPDATE links SET (CreationTime = " + int(Url.creationTime) + "," + ... + ") WHERE UrlAsID = " + Url.id + ";");
    sqlite3_exec("UPDATE linkIDs SET (CreationTime = " + int(Url.creationTime) + ") WHERE UrlAsID = " + Url.id + ";");
}
我想创建一个存储过程或使用一个复杂的SQL语句来封装上述逻辑。你能为我提供更精确的代码来完成这项工作吗


提前谢谢你

SQLite不支持存储过程:


如果SQL代码很复杂,我会尝试将其放入.SQL文件中,然后加载到变量中并执行。

SQLite不支持存储过程:


如果SQL代码很复杂,我会尝试将其放入.SQL文件中,然后加载到变量中并执行。

SQLite存储过程。您最多只能使用准备好的语句。您还应该使用SQLite绑定方法来设置参数,而不是字符串连接。请阅读此处的介绍:

SQLite存储过程。您最多只能使用准备好的语句。您还应该使用SQLite绑定方法来设置参数,而不是字符串连接。请阅读这里的介绍:

为了安全和速度,您的陈述应该用一个包装。此外,为了安全和速度,您应该再次使用(不同类型的安全,但即使如此)。你应该使用。所有这些都与您嵌入的语言无关,但链接指向的是相关语法。

为了安全和速度,您的语句应该包装在一个文本中。此外,为了安全和速度,您应该再次使用(不同类型的安全,但即使如此)。你应该使用。所有这些都与您嵌入的语言无关,但链接指向相关语法。

谢谢。他们的文档中没有给出例子,而是一个简单的理论。谢谢。他们文档中的问题并没有给出示例,而是一个简单的理论。谢谢!我理解,但还不能写一个工作程序在我的情况下。实验。我想我会指出你需要记住的事情,并试图把指针用C++解释语法(或C或Objc)的地方,这些差别对于SQLite API来说是很小的。谢谢!我理解,但还不能写一个工作程序在我的情况下。实验。我想我会指出你需要记住的事情,并尝试用C++中的语法(或C或Objc)解释指向指针的地方,这些差别对于SQLite API来说是很小的。它确实提供了一种机制,允许您添加自己的函数,但这取决于嵌入SQLite的语言/运行时。OTOH,它对准备好的语句的支持非常好,并且由于SQLite内部编译的方式的性质,从一个连接到另一个连接重用准备好的语句不会带来很大的节约。(我想我应该带着这个评论去某个地方,但这有点像脑筋急转弯。:-)有点像。它确实提供了一种机制,允许您添加自己的函数,但这取决于嵌入SQLite的语言/运行时。OTOH,它对准备好的语句的支持非常好,并且由于SQLite内部编译的方式的性质,从一个连接到另一个连接重用准备好的语句不会带来很大的节约。(我想我应该带着这个评论去某个地方,但这有点像脑筋急转弯。:-)