Почему pyodbc executemany автоматически фиксирует каждый вызов execute? - PullRequest
0 голосов
/ 25 сентября 2019

Sybase IQ: я установил autocommit = False, но executemany по-прежнему автоматически фиксирует каждую сделанную мной вставку.

+----------------------------------------------------------+
| Insert                                                   |
|----------------------------------------------------------|
| INSERT INTO Position.RC_Balance_Cash_2018_10 (Account,   |
| SubAccount,                                              |
| AccountSubType,                                          |
| AsOfDateTime,                                            |
| AccountingDate,                                          |
| OTE,                                                     |
| Balance,                                                 |
| CurrencyISO,                                             |
| TDSDBasis,                                               |
| OMV,                                                     |
| CompareType,                                             |
| RecID,                                                   |
| TotalEquity,                                             |
| Side,                                                    |
| Client) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)           |
+----------------------------------------------------------+

conn= pyodbc.connect(connStr, autocommit=False)
#conn.set_attr(pyodbc.SQL_ATTR_TXN_ISOLATION, pyodbc.SQL_TXN_SERIALIZABLE)
conn.autocommit = False 
cur= conn.cursor()

cur.fast_executemany = True
data = rows[total:][:chunk]

cur.executemany(sql, data )

Я даже попытался откатить явно без удачи:

cur.execute("ROLLBACK")
#or
conn.rollback()
...