Comments (2)
I have been stepping through the source code trying to fix this issue myself,
and so far I have worked out the following:
1. The Row object is dynamically created with the list of fields (using the
recordtype module)
2. This field list is empty, it gets populated from the _Col
3. When I run a query using MutableNamedTupleRow, Cursor._ColBufferList does
not get correctly populated. This means that the Row object does not get
created properly.
Is this likely to be fixed any time soon? I don't really know enough about the
low-level portions of the pypyodbc code to fix the _ColBufferList.
It might be possible to use the Cursor.description list to create the Row
object instead; I'm not sure.
Original comment by [email protected]
on 21 May 2014 at 7:52
from pypyodbc.
I believe that what I said in my previous comment is correct;
Cursor._ColBufferList is not getting populated properly when a query is
executed.
I fixed this by modifying the _UpdateDesc function a bit, although I still need
to run tests to make sure that it doesn't break anything else. Basically, I
just moved the following line to the *end* of the function, instead of it being
inside the if statement:
self._row_type = self.row_type_callable(self)
This forces the Row object to be created *after* the _ColBufferList is
populated, which fixes the TypeError exception with NamedTupleRow and
MutableNamedTupleRow.
I'll try to submit some kind of patch, but this really is just a one line
change.
Original comment by [email protected]
on 24 Sep 2014 at 7:08
from pypyodbc.
Related Issues (20)
- Description attribute returns only first char of name (as byte) using Oracle ODBC & Linux HOT 2
- Trimmed varchar results.
- Column names get wonky on 64-bit system using iSeries DB2 driver HOT 3
- Oracle and Decimal_cvt issue
- IronPython 2.7 StopIteration exception raised when retrieving SQL data set
- "invalid literal" exceptions querying empty numeric fields when using LinuxODBC with FreeTDS
- use mbdtools,chinese character encoded by gb charset can't access correctly
- Passing datetime.date returns TypeError: Wrong Type HOT 2
- Mapping bigint in sqlserver 2008 into float, instead of int in python3
- Bad cursor description (mixed bytes and strings) on Ubuntu 14.04 HOT 2
- Row objects don't raise KeyError for invalid fields
- Data source name not found on linux + unixodbc + as400 iseries driver HOT 1
- Cannot access column names by attribute HOT 4
- pypyodbc doesn't support the MSSQL datetimeoffset column type.
- state = err_list[0][0] Index out of range
- UnicodeDecodeError because UTF-16 surrogate pairs are not handled HOT 1
- Enhancement: Support for lists as SQL parameters
- executemany is very slow
- Sage Line 100 Odbc connect KO HOT 1
- Not working on Windows 7 64 bit 3.4.3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pypyodbc.