在 pymssql 中正确传递具有“-”的数据库名称

问题描述

我有一个由“-”组成的数据库名称(如 dbname-2020)。当我尝试执行查询时出现以下错误

pymssql.ProgrammingError: (102,b"Incorrect Syntax near '-'.DB-Lib error message 20018,severity 15:\nGeneral sql Server error: Check messages from the sql Server\n")

这是我使用的代码

serverName = 'servername.com'
userName = 'user2'
passWord = 'pass2'
dbname = 'dbname-2020'
conn = pymssql.connect(serverName,userName,passWord,"tempdb")
cursor1 = conn.cursor()
db_query = "SELECT CONVERT(date,LastImportDate),* from "+dbname+"..tblStores WHERE run= %s"
query_result1 = cursor1.execute(db_query,('true'))
query_output = cursor1.fetchone()

相同的代码适用于所有其他数据库。如何传递带有“-”的数据库名称

解决方法

使用方括号

fn read_timestamp() -> Result<String,&'static str> {
    let path = "/timestamp.txt";
    FileLock::lock(path,true,true)
        .and_then(|mut lock| {
            let mut content = String::new();
            lock.file.read_to_string(&mut content)
                .map(|_| content)
        })
        .map_err(|e| match e.kind() {
            NotFound => Err("File not found"),Interrupted | PermissionDenied | WouldBlock
                => Err("Cannot acquire lock"),_ => Err("Cannot read file")
        })
    }
}

What does the SQL Standard say about usage of backtick(`)?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...