2015-01-13 04:20:40 +08:00
|
|
|
import datetime
|
|
|
|
|
|
|
|
from .base import Database
|
|
|
|
|
|
|
|
|
2017-01-19 15:39:46 +08:00
|
|
|
class InsertIdVar:
|
2015-01-13 04:20:40 +08:00
|
|
|
"""
|
|
|
|
A late-binding cursor variable that can be passed to Cursor.execute
|
|
|
|
as a parameter, in order to receive the id of the row created by an
|
|
|
|
insert statement.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def bind_parameter(self, cursor):
|
|
|
|
param = cursor.cursor.var(Database.NUMBER)
|
|
|
|
cursor._insert_id_var = param
|
|
|
|
return param
|
|
|
|
|
|
|
|
|
|
|
|
class Oracle_datetime(datetime.datetime):
|
|
|
|
"""
|
|
|
|
A datetime object, with an additional class attribute
|
|
|
|
to tell cx_Oracle to save the microseconds too.
|
|
|
|
"""
|
|
|
|
input_size = Database.TIMESTAMP
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
def from_datetime(cls, dt):
|
|
|
|
return Oracle_datetime(
|
|
|
|
dt.year, dt.month, dt.day,
|
|
|
|
dt.hour, dt.minute, dt.second, dt.microsecond,
|
|
|
|
)
|