准备语句缓存的“紧凑”查询字符串?

问题描述 投票:0回答:1

如果 SQL 查询存储在跨多行声明的 Tcl 变量中以保持可读性,请使用:

set ::SQL::QueryName {
}

并使用

执行
db eval $::SQL::QueryName

是否应该对查询字符串进行某些处理,因为它们将成为准备好的语句缓存中的键?

例如,以续行符

\
结束每一行,使用
append
语句构建,或者在它们上运行某种类型的映射以形成没有不必要空格的单行?

之前没有考虑过它,因为缓存在 Tcl SQLite 中是自动的。

谢谢你。

sqlite tcl
1个回答
0
投票

我不会费心去做那样的聪明事;语句缓存通常是非常高兴的,因为它是在幕后自动发生的事情。只需直接将 SQL 编写为程序文字(显然是第一个选项!),一切都应该很好。

Tcl 的一个原则是,我们尝试使看起来显而易见的代码成为快速代码,并尽可能减少扭曲(因为这使用户更容易采用和适应)。对于快速代码,我们唯一真正的通用规则是“将内容放入过程中”和“在表达式周围放置大括号”。还有一些其他技巧(例如现在命名非常不准确的 K 技巧),但通常不需要它们。这种态度的结果是缓存是透明的,而且事实上相当普遍。它们是 C 扩展的工作,而不是普通的用户代码。

总之,别出汗。说真的。

© www.soinside.com 2019 - 2024. All rights reserved.