SQLiteParameter不能将TableName作为参数

http://stackoverflow.com/questions/1274432/sqlite-parameters-not-allowing-tablename-as-parameter

Generally one cannot use SQL parameters/placeholders for database identifiers (tables, columns, views, schemas, etc.) or database functions (e.g., CURRENT_DATE), but instead only for binding literal values.

placeholder 占位符

identifiers 标识符,认同者;检验人,鉴定人

literal 文字的;逐字的;无夸张的

With server-side support for parameterized (a.k.a. prepared) statements, the DB engine parses your query once, remembering out the peculiars of any parameters -- their types, max lengths, precisions, etc. -- that you will bind in subsequent executions of the already-parsed query. But the query cannot be properly parsed into its syntactic elements if critical bits, like database objects, are unknown.

peculiar 特权;特有财产

precisions 精度,[数] 精密度;精确

subsequent  后来的,随后的

syntactic  句法的;语法的;依据造句法的

critical  鉴定的;[核] 临界的;批评的,爱挑剔的;危险的;决定性的;评论的

So, one generally has to substitute table names oneself, in a stored procedure or in client code which dynamically concats/interpolates/whatevers the SQL statement to be properly executed. In any case, please remember to use your SQL API‘s function for quoting database identifiers, since the API won‘t do it for you.

substitute  代用品;代替者

stored procedur 存储过程

concat 合并多个数组;合并多个字符串

interpolate   vt. 篡改;插入新语句    vi. 插入;篡改

quote    n. 引用   vi. 报价;引用;引证   vt. 报价;引述;举证

时间: 2024-12-28 21:12:32

SQLiteParameter不能将TableName作为参数的相关文章

SQLite数据库操作类

[csharp] view plaincopy 首先:添加配置<add key="SQLString" value="~\demo.db"/> [csharp] view plaincopy [csharp] view plaincopy /************************************** * 作用:SQLLite Server操作实现 **************************************/ using

【转】C# 对sqlite基本操作,带批量插入

原文地址:https://download.csdn.net/download/mic_gary/10154869 public class SQLiteHelper { //数据库连接字符串 public static string connectionString; public SQLiteHelper() { } #region 公用方法 public static int GetMaxID(string FieldName, string TableName) { string str

SQLite的 SQL语法总结

SQLite库可以解析大部分标准SQL语言.但它也省去了一些特性并且加入了一些自己的新特性.这篇文档就是试图描述那些SQLite支持/不支持的SQL语法的.查看关键字列表. 如下语法表格中,纯文本用蓝色粗体显示.非终极符号为斜体红色.作为语法一部分的运算符用黑色Roman字体表示. 这篇文档只是对SQLite实现的SQL语法的综述,有所忽略.想要得到更详细的信息,参考源代码和语法文件“parse.y”. SQLite执行如下的语法: ALTER TABLE ANALYZE ATTACH DATA

[Android新手区] SQLite 操作详解--SQL语法

该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法  :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解析大部分标准SQL语言.但它也省去了一些特性并且加入了一些自己的新特性.这篇文档就是试图描述那些SQLite支持/不支持的SQL语法的.查看关键字列表. 如下语法表格中,纯文本用蓝色粗体显示.非终极符号为斜体红色.作为语法一部分的运算符用黑色Roman字体表示. 这篇文档只是对SQLite实现的SQ

国产达梦数据库的结合Enterprise Library的应用开发

在上篇<基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作>介绍了如何在Enterprise Library的数据访问层上支持这种神秘的国产数据库-达梦数据库.本文继续这一主题,介绍产达梦数据库的结合Enterprise Library的应用开发. 1.达梦数据库还原处理 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是7.0版本,简称DM7.DM7提供对SQL92的特性支持以及

如何同时对多个表或列操作

通过使用这个存储过程,你就可以方便的对数据库中具有一定规则的或者全部表,对这里的字段进行各种操作,具体看示例! CREATE PROCEDURE SP_execSQLonDB (@TABLENAME VARCHAR(50),        --表名条件  @COLUMNNAME VARCHAR(50),       --字段条件  @SQL NVARCHAR(4000),           --执行的SQL  @INCLUDE_NTI CHAR(1) = 'N')    --是否包含Text,

ormLite注解小记

注解是特殊的代码标志已在Java版本开始,要指定什么类和字段存储在数据库中,ORMLite支持其自己的注解(@ DatabaseTable @ DatabaseField)或更多的标准注解从javax.persistence包.注解是最简单的方法来配置你的类,但你也可以使用Java代码或Spring的XML配置类 .以下是注解的详细介绍: @ DatabaseTable注解可以有一个可选的TableName的参数指定类对应的表的名称.如果没有指定表名的情况下,默认情况下使用类名作为对应的表名.例

Hibernate生成实体类-手工写法(一)

BaseDao package com.pb.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BaseDao { protected Connection conn; protected PreparedSta

MySQL常见问题和应用技巧

前言 在MySQL日常开发或者是维护中,有一些问题或是故障往往是难以避免的,如丢失密码.表损坏.在此总结一下常见的问题,以备今后所需. 忘记MySQL的root密码 解决办法: 1.登录数据库所在服务器,手动kill掉Mysql进程 关闭进程的命令为:kill 进程号(linux下) 关闭进程的命令为:taskkill 进程号(win下) 怎么查看进程号呢? 我们都知道MySQL的进程号一般都会保存在Mysql数据目录下的,它记录了Mysql的服务进程号.文件名为hostname.pid,如下,