-
Notifications
You must be signed in to change notification settings - Fork 40
Revert "Type MApping: a long gets mapped to integer in Jet" #151
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This reverts commit 05b10ea.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only limitation then is that it will only be supported in OleDb. Odbc still doesn't handle decimal
Good point. It should also be mentioned, that recent Access database versions have an actual (opt-in) large number data type. While we could automatically use The way to go is probably to add an option that allows users to select between the store types. This way, the large number type can be added later as well. |
The large number type for recent version (2016+) might not work. When you enable it it can only be opened by 2016 and later. And then its unknown how it would via OleDb/Odbc as it would need a version of the access driver/provider that can understand that format and data type By the looks of it quickly one has to enable it directly via the desktop app. Not sure if it can be done programmatically. |
Should be possible.
Yeah, that's why we should make it an option for users to select, rather than a default. If someone enables it, it is that persons responsibility. Anyway, I don't consider it high priority to implement large numbers, as this is a rather new feature and Jet is mostly a legacy database (except for distributed network share scenarios). |
So we go with the option of adding a configuration option to enable using Int64. Call it something like |
It needs to be future-proof in this case here (as discussed above), so it is going to be an |
Some comments from a bit of research
|
Nice work! |
@ChrisJollyAU Hmm, this wasn't finished yet. Is was marked as |
What was still to do? We had split out the bigint work to #154 . And now that we solved the Odbc bug for decimal we didn't have to have 2 options for the user as to how to treat |
Okay, its fine then. |
This reverts commit 05b10ea.
The
long
datatype in Jet is 32 bit and therefore equals theInt32
CLR type.We cannot use it to map the
Int64
CLR type to Jet.The
decimal
datatype in Jet has a total number of 28 digits, which can be used to represent the largest 64 bit value (signed and unsigned) of18,446,744,073,709,551,616
(20 digits).So the original implementation should be correct.