The sdb.dbapi module implements the functions that are recommended in the Python Database API specifications v2.0 for the conversion of date and time values.
Converting Python values -> MaxDB values
Function |
Return Value |
Date (year, month, day) |
String that can be used anywhere where the database system expects an input value for an SQL data type DATE |
Time (hour, minute, second) |
String that can be used anywhere where the database system expects an input value for an SQL data type TIME |
Timestamp (year, month, day, hour, minute, second, micros = 0) |
String that can be used anywhere where the database system expects an input value for an SQL data type TIMESTAMP |
DateFromTicks (ticks) |
String that can be used anywhere where the database system expects an input value for an SQL data type DATE |
TimeFromTicks (ticks) |
String that can be used anywhere where the database system expects an input value for an SQL data type TIME |
TimestampFromTicks (ticks) |
String that can be used anywhere where the database system expects an input value for an SQL data type TIMESTAMP |
Converting MaxDB values -> Python values
Function |
Return Value |
dateTuple |
(year, month, day) |
timeTuple |
(hour, minute, second) |
timestampTuple |
Tuple in the same format as the return value for time.localtime () |
dateVal |
Number of seconds since epoch |
timeVal |
Number of seconds since epoch |
timestampVal |
Number of seconds since epoch |
DateFormat (formatString) |
Date formatted according to time.strftime |
TimeFormat (formatString) |
Time formatted according to time.strftime |
TimestampFormat (formatString) |
Timestamp formatted according to time.strftime |
For more information, see the Python documentation at www.python.org.
Registering conversion functions with a cursor or connection object
Callable Object |
Description |
cursor.setTranslation ([ None, sdb.dbapi.dateTuple, sdb.dbapi.DateFormat('%Y-%m-%d')]) |
You transfer a list in which you specify a function for data conversion for every column. If no data conversion is to be performed for a column, then transfer the None object at the position of the column in question. |
cursor.setTypeTranslation ({ 'Date': sdb.dbapi.dateTuple, 'Time': sdb.dbapi.timeTuple, 'Fixed':str}) |
You transfer a dictionary. As the key you enter the same type name as output by the method sdb.sql.SapDB_ResultSet.getDescription. As values, enter the functions for data conversion. The system uses these functions for all columns of a certain SQL data type. |
connection.setTypeTranslation ({ Date': sdb.dbapi.dateTuple, 'Time': sdb.dbapi.timeTuple, 'Fixed':str})‑{}‑ |
You transfer a dictionary, that has the same structure as the parameter for cursor.setTypeTranslation. For every newly created Cursor object you call the method setTypeTranslation with the dictionary as parameter. |
For more information, see www.python.org.