Just for clarity on this issue: if you save your sessions to MSSQL you will get an error because the MS SQL driver is expecting the timestamp to be a string, but instead it is a datetime object due to the ".isoformat()" added in version 2.19.
By modifying the line 1247 in globals.py, putting the .isoformat in comment, the timestamp is again a string and it works again. On Wednesday, January 11, 2023 at 12:08:54 PM UTC+1 Davidiam wrote: > Hi, > > Has anyone found a solution for this? We are experiencing the same issue > with 2.22.5 and storing the session in the db. > As a work-around, we have removed the ".isoformat" from the line 1247 of > the gluon\globals.py: > > modified_datetime=request.now, #.isoformat(), > > What would be the impact of our work-around? If we put isoformat in > comment, the modified_datetime will be a string instead of a datetime > object. > > On Thursday, June 4, 2020 at 6:30:30 AM UTC+2 Seth J wrote: > >> Thanks for pointing the function. But it looks like the error is >> happening on the Session insert. See below *query* block: >> >> >> >> - Variables >> e DataError('22007', '[22007] [Microsoft][ODBC SQL...e from character >> string. (241) (SQLExecDirectW)') >> >> Context >> >> locals request session response >> locals >> e : DataError('22007', '[22007] [Microsoft][ODBC SQL...e from character >> string. (241) (SQLExecDirectW)') >> fields : [(<pydal.objects.Field object>, '172.20.252.61'), >> (<pydal.objects.Field object>, 0), (<pydal.objects.Field object>, >> '2020-06-04T00:21:23.665000'), (<pydal.objects.Field object>, >> '5258b356-2b72-4a24-8868-710222ac0784'), (<pydal.objects.Field object>, >> datetime.datetime(2020, 6, 4, 0, 21, 23, 665000)), (<pydal.objects.Field >> object>, >> '\x80\x02cgluon.globals\nSession\nq\x01}q\x02U\x05flashq\x03U\x00s\x85Rq\x04.')] >> query : 'INSERT INTO >> "web2py_session_PubView"("client_ip"...FscwpTZXNzaW9uCnEBfXECVQVmbGFzaHEDVQBzhVJxBC4=\');' >> self : <pydal.adapters.mssql.MSSQL4 object> >> table : >> <Table web2py_session_PubView (id, locked, clien...me, modified_datetime, >> unique_key, session_data)> >> >> On Wednesday, June 3, 2020 at 11:09:28 PM UTC-4, Dave S wrote: >>> >>> >>> >>> On Wednesday, June 3, 2020 at 2:04:02 PM UTC-7, Seth J wrote: >>>> >>>> I am not sure how to view the query sent to MSSQL. >>>> >>> >>> Does this help/? >>> <URL: >>> https://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#_lastsql >>> > >>> >>> >>> >>> >>>> Here's a little more from the error record: >>>> >>>> >>>> - >>>> >>>> *File C:\inetpub\wwwroot\gluon\packages\dal\pydal\adapters\base.py >>>> in insert at line 539* code arguments variables >>>> Function argument list >>>> >>>> (self=<pydal.adapters.mssql.MSSQL4 object>, table=<Table >>>> web2py_session_PubView (id, locked, clien...me, modified_datetime, >>>> unique_key, session_data)>, fields=[(<pydal.objects.Field object>, >>>> '172.20.145.208'), (<pydal.objects.Field object>, 0), >>>> (<pydal.objects.Field >>>> object>, '2020-06-03T00:26:05.296000'), (<pydal.objects.Field object>, >>>> 'affc9c47-0085-45dc-8352-12549c7f93dc'), (<pydal.objects.Field object>, >>>> datetime.datetime(2020, 6, 3, 0, 26, 5, 296000)), (<pydal.objects.Field >>>> object>, >>>> >>>> '\x80\x02cgluon.globals\nSession\nq\x01}q\x02U\x05flashq\x03U\x00s\x85Rq\x04.')]) >>>> >>>> >>> You've got a date conversion error. Do you need to specify a format >>> string? Is the ISO 'T' causing problems with a format that expects a >>> space? How have you defined the field? >>> >>> /dps >>> >>> >> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/d0e07c9d-2cde-4b34-81a3-3e4160f4cf78n%40googlegroups.com.