Se as consultas SQL forem armazenadas em variáveis Tcl declaradas em múltiplas linhas para mantê-las legíveis, use:
set ::SQL::QueryName {
}
e executado usando
db eval $::SQL::QueryName
algo deve ser feito nas strings de consulta, já que elas serão as chaves no cache de instruções preparadas?
Por exemplo, terminar cada linha com o caractere de continuação de linha \
, construir com append
instruções ou executar algum tipo de mapeamento nelas para criar uma única linha sem espaços desnecessários?
Não tinha pensado nisso antes porque o cache é meio automático no Tcl SQLite.
Obrigado.
Eu não me incomodaria em fazer coisas inteligentes como essa; o cache de instruções geralmente funciona totalmente como algo automático que acontece nos bastidores. Basta escrever o SQL diretamente como literais de programa ( a primeira opção óbvia!) e tudo deverá funcionar bem.
Um princípio do Tcl é que tentamos fazer com que o código de aparência óbvia seja um código rápido, com o mínimo de contorções possível (pois isso torna mais fácil para os usuários adotarem e adaptarem). As únicas regras comuns reais que temos para código rápido são "colocar coisas em procedimentos" e "colocar colchetes em expressões". Existem alguns outros truques (como o truque K, agora com nome muito impreciso), mas você normalmente não precisa deles. Uma consequência dessa atitude é que os caches são transparentes e, na verdade, bastante onipresentes; é tarefa das extensões C se preocupar, não do código de usuário normal.
Resumindo, não se preocupe. Seriamente.