我正在尝试使用SERVERPROPERTY
获取sql server数据和日志路径
当我在SSMS中低于stmt运行时,我会得到路径
SELECT SERVERPROPERTY('InstanceDefaultLogPath') ,SERVERPROPERTY('InstanceDefaultDataPath')
但是当我尝试使用pyodbc从python运行相同的查询时。它给了我:
result = connsql.cursor().execute(query).fetchone()
pyodbc.ProgrammingError: ('ODBC SQL type -150 is not yet supported. column-index=0 type=-150', 'HY106')
知道如何在python中获取路径吗
代码:
def getSQLServerPath(self):
try:
print("Into function..")
connsql = self.sql_connection()
query = "SELECT SERVERPROPERTY('InstanceDefaultLogPath') ,SERVERPROPERTY('InstanceDefaultDataPath') "
result = connsql.cursor().execute(query).fetchone()
print(result)
connsql.cursor().commit()
connsql.close()
# return path
except Exception:
logging.exception("getSQLServerPath function: Something went wrong.")
这个错误实际上是在告诉您这里的问题,返回的数据类型才是问题所在。表达式
SERVERPROPERTY('InstanceDefaultLogPath')
返回数据类型sql_variant
,除了SQL Server之外几乎不支持任何数据类型。您可以使用以下SQL进行检查:因此,您需要显式地
CONVERT
ODBC支持的数据类型的值。由于这两个都是文件路径,因此nvarchar
似乎是正确的选择:相关问题 更多 >
编程相关推荐