Your fix is in trunk. Please check it.
On Dec 8, 11:26 pm, Brian M <bmere...@gmail.com> wrote: > Massimo, executesql() isn't working correctly with the new DAL in > trunk. The fix looks to be easy, simply replace self._cursor with > self._adaptor.cursor this fixes things for SQLite and I would assume > the other DBs as well - I can try testing MS SQL tomorrow. > > Fixed code is below, should be right around line 3345... > > def executesql(self, query, placeholders=None, as_dict=False): > """ > <snip>docstring removed for brevity</snip> > """ > if placeholders: > self._adapter.execute(query, placeholders) > else: > self._adapter.execute(query) > if as_dict: > > if not hasattr(self._adapter.cursor,'description'): > raise RuntimeError, "database does not support > executesql(...,as_dict=True)" > # Non-DAL legacy db query, converts cursor results to dict. > # sequence of 7-item sequences. each sequence tells about a column. > # first item is always the field name according to Python Database API > specs > columns = self._adapter.cursor.description > # reduce the column info down to just the field names > fields = [f[0] for f in columns] > # will hold our finished resultset in a list > data = self._adapter.cursor.fetchall() > # convert the list for each row into a dictionary so it's > # easier to work with. row['field_name'] rather than row[0] > return [dict(zip(fields,row)) for row in data] > # see if any results returned from database > try: > return self._adapter.cursor.fetchall() > except: > return None > > ~Brian M