Commit Graph

105 Commits (0bc5d04759bf8bfd9b284bc7227d7d6b2a098bc3)

Author SHA1 Message Date
Christopher Jolly 0bc5d04759 According to convention, if the property is the primary key and it is an integer, make it the identity column. This wasn't being set by default 3 years ago
Christopher Jolly 4eb1b0cdd8 Rewrite the COALESCE function into a form access can understand 3 years ago
Christopher Jolly b533695713 SqlExpressionFactory can't be used inside SqlGenerator so create the expressions manually. Fixes queries with conversions 3 years ago
Christopher Jolly ca0feb49d3 Add extension methods for the Fluent API IsClustered. Mainly for cross compaitiblity so that code written for multiple databases doesn't error. For Jet, the function won't do anything 3 years ago
Christopher Jolly 7dd239bea8 add compile fixes from upstream changes 3 years ago
Christopher Jolly 1f35ab88fd merge fixes from upstream 3 years ago
Laurents Meyer 3b6fee5a89
Disable savepoint API, because it is not supported by Jet. (#126) 4 years ago
Laurents Meyer a9455f81ea
Use double workaround only for DateTime default values if millisecond support has been enabled. (#127) 4 years ago
Laurents Meyer 120a47746a
[PORT] Improve `counter` type handling and add missing `counter` usage cases (#121)
* Improve counter type handling. (#112)

* Add missing counter usage cases.

* Adjust tests.
4 years ago
Laurents Meyer 09cfe3ac05
Add an IRelationalAnnotationProvider implementation. (#119) 4 years ago
Laurents Meyer e9d4aef876
[PORT] Do not create Index-Operations with the same name as ForeignKey constraints (#115)
* In contrast to SQL Standard, MS Access will create an index together with a the FK constrains (#114)

According to https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/constraint-clause-microsoft-access-sql
this can be deactivated, however creating an index with the same name as an FK still results in an runtime error, therefor the index creation operation is skipped

Co-authored-by: Michael Steinecke <m.p.steinecke@gmail.com>

* Update to 5.0 and cleanup code and comments.

Co-authored-by: Michael Steinecke <6099045+MichaelSteinecke@users.noreply.github.com>
Co-authored-by: Michael Steinecke <m.p.steinecke@gmail.com>
4 years ago
Christopher Jolly 426240084d net 6 update 4 years ago
Christopher Jolly b1fa143d4d
Update to .Net 5 (#99)
* update to net 5

* Add DecimalTypeKey to the logger

* fix build

* fix sdk version for script

* Update dependencies.

* Fix version and dependencies.

* Readd necessary code paths, fix smaller upgrade issues, cleanup code.

* Fix project files.

* Fix tests.

* Readd removed JetQueryTranslationPostprocessorFactory injection.
Fix date/time related millisecond (double) support.

* Fix value generation.

Co-authored-by: Laurents Meyer <laucomm@gmail.com>
4 years ago
Laurents Meyer 12614cd7a1
Ensure columns of relationships (FK -> PK/AK) are applied in the original order, when scaffolding. (#104) 5 years ago
Laurents Meyer db2c056b9f
Return default value for JetDateTimeTypeMapping derived classes as well. (#102) 5 years ago
Laurents Meyer ad5799ffa6
Return correct type mapping for DateTimeOffset with an explicit DATETIME store type set. (#101) 5 years ago
Laurents Meyer fedc4cc226
Fix create database operations and multi statement splitting with parameters (#97)
* Fix automatically assigned file extensions when creating databases.

* Fix parser to correctly return state indices of sub commands. This is a fix for commands containing more than one actual SQL command in its command text, when those multiple actual SQL commands are using parameters.
5 years ago
Laurents Meyer 3235e3ce41
Resolve IJetOptions for design time services. (#94) 5 years ago
Laurents Meyer b749447fd0
Add support for PASSWORD clause in EFCore.Jet specific CREATE DATABASE statement (#91)
* Add support for PASSWORD clause in EFCore.Jet specific CREATE DATABASE statement.

* Add negative test.
5 years ago
Laurents Meyer 56bf71b17f
Fix schema and rename related issues and tests (#89)
* Fix schema and rename related issues and tests.

* Adjust rename syntax for better standard conformity.
5 years ago
Laurents Meyer 45e7d8a365
Fix CREATE/DROP DATABASE related issues. (#88) 5 years ago
Laurents Meyer 00178eb0cd
Fix DateTime fractions logic and make milliseconds support opt-in (#86)
* Ensure deterministic test ordering.

* Fix DateTime factions logic.

* Make milliseconds support opt-in.

* Fix logic and add tests.

* Fix DateTime related OLE DB parameter configuration.
5 years ago
Laurents Meyer 54b4af5759
Fix DateTime expressions for HasDefaultValue() and add support for fractions of a second (#85)
* Fix and improve test runs.

* Fix DateTime expressions for HasDefaultValue() and add support for fractions of a second.
Refactor test infrastructure.
5 years ago
xoniuqe b0d53d30ce
Fix DEFAULT clause for HasDefaultValueSql() (#81)
* Removed parenthesis from column default values (addresses issue #18)

* Fixed issue where the file handles were not being released after the database connection was closed.

* reverted accidentally changed file to upstream version

* Fixed issue where the file handles were not being released after the database connection was closed.

* reverted accidentally changed file to upstream version

* Add accompanying tests for PR #81.

Co-authored-by: Collin Kostichuk <collin.kostichuk@genivar.com>
Co-authored-by: Collin Kostichuk <collin.kostichuk@wsp.com>
Co-authored-by: Tobias Arens <arens@jam-software.de>
Co-authored-by: Laurents Meyer <laucomm@gmail.com>
5 years ago
Laurents Meyer f094f3658c
Fix data and test infrastructure and scaffolding (#82)
* Fix local references.

* Optimize, fix and simplify JetDataReader.

* Only scaffold objects if tables are available.

* Fix test infrastructure.

* Ignore Development.props in root folder.
5 years ago
Floris Verhoeven 23b8257fc8
Trim called without arguments throws index out of range (#77)
* Check arguments before accessing in jet string method translator

* Change expected result on to lower and to upper query tests

* Change expected result on trim query tests

* Remove original fix and fix condition chaining in trim clause generation

Co-authored-by: Floris Verhoeven <florisverhoeven@outlook.com>
5 years ago
Laurents Meyer 2b44bac7ba Cleanup solution. 5 years ago
Laurents Meyer 64ebb61c0a
Rename System.Data.Jet to EntityFrameworkCore.Jet.Data (#75)
* Rename System.Data.Jet and System.Data.Jet.Test projects.

* Rename System.Data.Jet and System.Data.Jet.Test namespaces.
5 years ago
Laurents Meyer 72f445248e
Add ODBC and OLE DB specific packages (#74)
* Rename solution.

* Add ODBC and OLE DB specific projects/packages.

* Adjust package tags.
5 years ago
Laurents Meyer 6a7b28658d
Use new information schema syntax for HistoryRepository checks (#70)
* Use new information schema syntax.

* Block conditions are unsupported.
5 years ago
Laurents Meyer e1216f4915 Fix versioning and projects.
Reactivate tests, but ignored failed tests for now.
5 years ago
Laurents Meyer c661926684
Improve project and CI (#68)
* Update .NET SDK.
Improve CI.

* Simplify dependency management.

* Add new versioning mechanism.

* Implement CI package publishing.

* Add matrix for multiple ACE architectures.

* Fix xUnit warnings.

* Cleanup and enable SourceLink.

* Manually install .NET SDK to specify architecture.
Extend matrix to test for x64/x86 and ODBC/OLE DB.
5 years ago
Laurents Meyer a14d665d5a
Fix translation of parameterless Trim(), TrimStart() and TrimEnd() methods. (#64)
These methods are only available in .NET Core 2.0+ (or .NET Standard 2.1+).
5 years ago
Laurents Meyer 864be46354
Reimplement schema retrieval and scaffolding (#59)
* Reimplement schema retrieval.

* Reimplement scaffolder. Some Jet specific options have not been implemented yet.
5 years ago
Lau 226220dac6 Fix join statement generation. 6 years ago
Lau 1f35fca138 Reintroduce legacy support to emulate row skipping in the most outer SELECT statement, by letting JetDataReader ignore returned rows. 6 years ago
Lau 7aa5892184 Fix global variable placeholder handling.
Reactivate @@ROWCOUNT in INSERT/UPDATE generation.
6 years ago
Lau 43d5d39c69 Remove workarounds for Skip(), which is unsupported by Jet/ACE.
Implement better parameter support (including named parameters for ODBC).
Remove support for multiple statements in a single command, to support named parameters.
6 years ago
Lau d80b53e9b2 Fix join statement generation. 6 years ago
Lau 48bc49d3a4 Fix bool value mapping. 6 years ago
Lau db47437539 Provide `TOP` and `SKIP` support for ODBC commands and improve algorithm and use cases. 6 years ago
Lau 6141f1e581 Update still present square bracket identifiers to backticks. 6 years ago
Lau 0df985e00d Fix smaller issues and add TODOs. 6 years ago
Lau 1f42ec1f0a Implement automatic driver (ODBC) and provider (OLE DB) inference and detection. 6 years ago
Lau f86cf6e0b4 Update existing and add new UseJet signatures. 6 years ago
Lau 3f19b269b4 Rename DataAccessType to DataAccessProviderType. 6 years ago
Lau 41579e74c9 Cleanup all remaining ODBC and OLE DB references. 6 years ago
Lau 11d56f868c Implement workaround for "To many tables" error:
ODBC Error Code: -1311 [HY001]
[Microsoft][ODBC Microsoft Access Driver] Cannot open any more tables.
If too many commands get executed in short succession, ACE/Jet can run out of table handles.
This can happen despite proper disposal of OdbcCommand and OdbcDataReader objects.
Waiting for a couple of milliseconds will give ACE/Jet enough time to catch up.
6 years ago
Lau 4d1f86bb0e Implement parallel support for ODBC and OLE DB. 6 years ago
Lau e6c100eaf6 Switch to multi-targeting. 6 years ago