- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Python 3.5 和 pymssql 包将字节或字节数组插入到 Sql Server 表中。我不断收到 pymssql.ProgrammingError
尝试插入后。
我已使用以下链接和问题作为引用,但我仍然遇到问题:
Explicit Convert of Varbinary(max) column
Insert binary file into MSSQL db (varbinary) with python pymssql
我已经验证我有权限并且可以将其他数据类型插入到 sql server 数据库中。下面是表结构。
Table Structure
尝试01:
sql_cursor = m_sql_conn.cursor()
byte_test_01 = b'This is a byte test'
hex_01 = '0x'.encode('ascii') + binascii.hexlify(byte_test_01)
string_sql_insert = "INSERT INTO CPBB_DevClusterObjs(str_cluster_id, \
Covert(varbinary(max), obj_cluster_empty)) \
VALUES('BatchKm|20|k-means++|1'," + hex_01 + ')'
sql_cursor.execute(string_sql_insert)
pymssql.ProgrammingError
hex_01 = b'0x54686973206973206120627974652074657374'
sql_cursor = m_sql_conn.cursor()
byte_test_01 = b'This is a byte test'
hex_01 = '0x'.encode('ascii') + binascii.hexlify(byte_test_01)
list_insert_many = [('BatchKm|20|k-means++|1', hex_01)]
string_sql_insert = "INSERT INTO \
CPBB_DevClusterObjs(str_cluster_id,Covert(varbinary(max), obj_cluster_empty)) \
VALUES (%s,%b)"
sql_cursor.executemany(str_sql_statement, list_insert_many)
pymssql.ProgrammingError
hex_01 = b'0x54686973206973206120627974652074657374'
sql_cursor = m_sql_conn.cursor()
byte_test_01 = b'This is a byte test'
hex_01 = '0x'.encode('ascii') + binascii.hexlify(byte_test_01)
string_sql_insert = "INSERT INTO CPBB_DevClusterObjs(str_cluster_id,obj_cluster_empty) \
VALUES ('BatchKm|20|k-means++|1'," \
+ hex_01 + ')'
sql_cursor.execute(string_sql_insert)
pymssql.ProgrammingError
hex_01 = b'0x54686973206973206120627974652074657374'
def Test():
# lists
list_sql_insert_data_type = ['%s', '%b']
list_return = list()
# variables
string_sql_table = r'CPBB_DevClusterObjs'
str_sql_error = ''
user = r'user_me'
host = r'server_me'
pswd = r'pswd_me'
db_name = r'db_me'
bool_insert_into_table = False
# sql connection
list_sql_conn = SqlMethods.SqlGenConnection(user, host, pswd, db_name)
sql_cursor = list_sql_conn[1].cursor()
# byte test variables
byte_test_01 = b'This is a byte test'
hex_01 = '0x'.encode('ascii') + binascii.hexlify(byte_test_01)
# create insert string
string_sql_insert = 'INSERT INTO ' + string_sql_table
string_sql_insert += '(string_cluster_id, CONVERT(varbinary(max), obj_cluster_empty)) '
string_sql_insert += "VALUES ('BatchKm|20|k-means++|1'," + "'" + str(hex_01) + "'" + ')'
# explicit string conversation of hex_01
string_hex_01 = "'" + str(hex_01) + "'"
# take out the CONVERT() statement
#string_sql_insert = 'INSERT INTO ' + string_sql_table
#string_sql_insert += '(string_cluster_id, obj_cluster_empty) '
#string_sql_insert += "VALUES ('BatchKm|20|k-means++|1'," + "'" + str(hex_01) + "'" + ')'
try:
sql_cursor.execute(string_sql_insert)
except pymssql.OperationalError:
str_sql_error = 'Operational error was raised'
except pymssql.ProgrammingError:
str_sql_error = 'A program error was raised.'
except pymssql.Error:
str_sql_error = 'General error raised.'
except pymssql.DatabaseError:
str_sql_error = 'Database error raised.'
except pymssql.DataError:
str_sql_error = 'Data error raised.'
except pymssql.IntegrityError:
str_sql_error = 'Integrity error raised.'
except pymssql.InterfaceError:
str_sql_error = 'Interface error raised.'
except pymssql.InternalError:
str_sql_error = 'Internal error raised.'
except pymssql.NotSupportedError:
str_sql_error = 'Not supported error raised.'
except pymssql.StandardError:
str_sql_error = 'Standard error raised.'
else:
bool_insert_into_table = True
list_sql_conn[1].commit()
finally:
list_return.append(bool_insert_into_table)
list_return.append(str_sql_error)
# return list
return list_return
hex_01 = 0x54686973206973206120627974652074657374
string_hex_01 = "'" + str(hex_01) + "'" = 'b'0x54686973206973206120627974652074657374''
string_sql_insert = INSERT INTO CPBB_DevClusterObjs(string_cluster_id,
CONVERT(varbinary(max), obj_cluster_empty)) VALUES
('BatchKm|20|k-means++','b'0x54686973206973206120627974652074657374'')
string_hex_01 = str(hex_01)[1:] = '0x54686973206973206120627974652074657374'
# test insert into string_cluster_id
string_sql_insert = 'INSERT INTO ' + string_sql_table
string_sql_insert += ' (str_cluster_id) '
string_sql_insert += "VALUES ('BatchKm|20|k-means++|1')"
string_sql_insert = 'INSERT INTO CPBB_DevClusterObjs'
string_sql_insert += '(obj_cluster_empty) '
string_sql_insert += "VALUES ('0x54686973206973206120627974652074657374')"
pymssql.OperationalError
string_sql_insert = 'INSERT INTO CPBB_DevClusterObjs'
string_sql_insert += '(obj_cluster_empty) '
string_sql_insert += "VALUES (CONVERT(varbinary(max), '0x54686973206973206120627974652074657374'))"
except _mssql.MSSQLDatabaseException as db_e:
str_sql_error = 'mssql database error raised'
exc_db_number = db_e.number
exc_db_msg = db_e.message
string_sql_insert = 'INSERT INTO CPBB_DevClusterObjs'
string_sql_insert += '(obj_cluster_empty) '
string_sql_insert += "VALUES (CONVERT(varbinary(max), '0x54686973206973206120627974652074657374'))"
def Test_01():
# lists
list_sql_insert_data_type = ['%s', '%b']
list_return = list()
# variables
string_sql_table = r'CPBB_DevClusterObjs'
str_sql_error = ''
user = r'user_me'
host = r'server_me'
pswd = r'pswd_me'
db_name = r'db_me'
bool_insert_into_table = False
# sql connection
list_sql_conn = SqlMethods.SqlGenConnection(user, host, pswd, db_name)
sql_cursor = list_sql_conn[1].cursor()
# _mssql connection
_mssql_conn = _mssql.connect(server = host, user = user, password = pswd, database = db_name)
# byte test variables
byte_test_01 = b'This is a byte test'
hex_01 = '0x'.encode('ascii') + binascii.hexlify(byte_test_01)
# explicit string conversion of hex_01
string_hex_01 = "'" + str(hex_01) + "'"
string_hex_02 = str(hex_01)[1:]
# create insert string
#string_sql_insert = 'INSERT INTO CPBB_DevClusterObjs'
#string_sql_insert += '(str_cluster_id, obj_cluster_empty) '
#string_sql_insert += "VALUES ('BatchKm|20|k-means++|1','0x54686973206973206120627974652074657374')"
# sucess!! below insert works
string_sql_insert = 'INSERT INTO CPBB_DevClusterObjs'
string_sql_insert += '(obj_cluster_empty) '
string_sql_insert += "VALUES (CONVERT(varbinary(max), '0x54686973206973206120627974652074657374'))"
# test insert into string_cluster_id
#string_sql_insert = 'INSERT INTO ' + string_sql_table
#string_sql_insert += ' (str_cluster_id) '
#string_sql_insert += "VALUES ('BatchKm|20|k-means++|1')"
# take out the CONVERT() statement
#string_sql_insert = 'INSERT INTO ' + string_sql_table
#string_sql_insert += '(str_cluster_id, obj_cluster_empty) '
#string_sql_insert += "VALUES ('BatchKm|20|k-means++|1'," + "'" + str(hex_01) + "'" + ')'
try:
sql_cursor.execute(string_sql_insert)
except pymssql.OperationalError as oe:
str_sql_error = 'Operational error was raised'
except pymssql.ProgrammingError:
str_sql_error = 'A program error was raised.'
except pymssql.Error:
str_sql_error = 'General error raised.'
except pymssql.DatabaseError:
str_sql_error = 'Database error raised.'
except pymssql.DataError:
str_sql_error = 'Data error raised.'
except pymssql.IntegrityError:
str_sql_error = 'Integrity error raised.'
except pymssql.InterfaceError:
str_sql_error = 'Interface error raised.'
except pymssql.InternalError:
str_sql_error = 'Internal error raised.'
except pymssql.NotSupportedError:
str_sql_error = 'Not supported error raised.'
except pymssql.StandardError:
str_sql_error = 'Standard error raised.'
else:
bool_insert_into_table = True
list_sql_conn[1].commit()
finally:
list_return.append(bool_insert_into_table)
list_return.append(str_sql_error)
# return list
return list_return
最佳答案
尝试将您的 string_sql_insert 修改为:
string_sql_insert = "INSERT INTO CPBB_DevClusterObjs(str_cluster_id, \
CONVERT(varbinary(max), obj_cluster_empty)) \
VALUES('BatchKm|20|k-means++|1'," + "'" + hex_01 + "'"')'
INSERT INTO CPBB_DevClusterObjs(str_cluster_id, obj_cluster_empty) VALUES('BatchKm|20|k-means++|1',0x54686973206973206120627974652074657374)
INSERT INTO CPBB_DevClusterObjs(str_cluster_id, obj_cluster_empty) VALUES('BatchKm|20|k-means++|1','0x54686973206973206120627974652074657374')
def insert_and_select(self, cname, value, vartype, params_as_dict=False):
def test_binary_string(self):
bindata = '{z\n\x03\x07\x194;\x034lE4ISo'.encode('ascii')
testval = '0x'.encode('ascii') + binascii.hexlify(bindata)
colval = self.insert_and_select('data_binary', testval, 's')
self.typeeq(bindata, colval)
eq_(bindata, colval)
关于python - 使用 pymssql 将字节插入 sql server varbinary(max) 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42637062/
我想在 pymssql 中接收行作为字典。在 python-idle 我跑了: >>> conn = pymssql.connect(host='192.168.1.3', user='majid',
我已经编写了一个围绕 pymssql 的包装器来连接到我工作的数据库。我遇到了 unicode 解码/编码错误,我正在尝试从源头上阻止它们。 当我指定 charset='latin1' 或 'iso-
我在 django 项目中使用 pymssql 连接到数据库。我正在尝试使用execute()方法进行插入。 但是我收到此错误: Cannot insert the value NULL into c
我正在尝试从远程服务器上的 python 3.4 连接到 SQL Server 命名实例,但出现错误。 File "C:\Scripts\Backups Integrity Report\Backup
我在 Linux 上运行 pymssql 包(版本 1.0.2)时遇到问题。看起来我可以成功连接并向服务器发出 SQL 语句,但查询返回空白结果。我已经确认 CREATE TABLE 和 INSERT
我已下载 Pymssql 以连接到 sqlserver 数据库,但连接字符串抛出错误-pymssql.connect(pymssql.c.:7990) import pymssql pymssql.c
我正在尝试使用 Python 的 pymssql 连接到 Azure SQL 服务器。问题是以下脚本可以工作,但只是有时有效,其他时候我会收到此错误: _mssql.MSSQLDatabaseExce
我正在尝试在 SQL 服务器上执行存储过程并使用 python 保存结果——我决定使用 pymssql,因为它似乎是最简单的解决方案。 print pymssql.__version__ server
我可以在 pymssql 中使用哪些占位符。我从 html 查询字符串中获取我的值,因此它们都是字符串类型。这对于 sql 注入(inject)安全吗? query = dictify_queryst
我正在尝试使用来自 here 的二进制文件安装 FreeTDS , 在 Windows 上,但我不知道如何安装二进制文件;谷歌搜索没有找到任何相关内容。我正在安装,以便可以导入和使用 Python 模
我以前使用的是 MySQL,并且有一个使用 REGEXP 的查询。我正在尝试查找以某些字符开头的 site_id,并使用了以下内容: WHERE site_id REGEXP '^(AB|BC|AO|
我必须将 MSSQL Server 数据库与 Django 中的项目一起使用,我使用 django-pymssql 依赖,一开始一切正常。 当我运行初始迁移时,它会抛出一个错误: django.db.
我需要将 numpy 数组存储在 MS SQL 数据库的 varbinary(max) 字段中。在 MySQL 中这是一个简单的任务,但 MS SQL 则更加危险。为了能够存储一些东西,我需要像这样使
我们的一些数据挖掘工作陷入僵局并失去联系。挑战是我们想在 Python pymssql 模块因死锁而失败时捕捉到。 File "pymssql.pyx", line 465, in pymssql.C
我有 freetds.conf 和 dbserver 连接到数据库服务器 (我通常将其用于 PHP),该服务器位于我们自己网络上的单独服务器上。 只是为了测试连接,我有这个小程序: from sqla
当我们的 MS SQL 服务器变得不可访问时,我们遇到了这个问题。这在我们的代码中造成了一个错误,使我们的程序戛然而止,当然还有用户的干草叉和手电筒来到我们家门口。我们已经能够将我们的问题归结为:如果
我是 python 的新手,我正在尝试编写一个将值放入 SQL 数据库的脚本。 它是一个简单的 2 列表,如下所示: CREATE TABLE [dbo].[pythonInsertTest](
我正在尝试通过 pymssql 从与链接服务器通信的 python 脚本执行存储过程。 SP 在手动运行时工作,但从 python 脚本运行时出错: (7391, 'The operation cou
根据 Python DB API,cursor.description 中的一个字段返回一个 type_code;然而,这些总是数字。如何从 type_code(例如 1)转换为数据类型(例如 TEX
我正在使用 pymsqsql 库从 Python 程序调用极其简单的查询。 with self.conn.cursor() as cursor: cursor.execute('selec
我是一名优秀的程序员,十分优秀!