{"id":19903352,"url":"https://github.com/geomatics-io/macroscope","last_synced_at":"2025-06-22T22:06:43.511Z","repository":{"id":149295702,"uuid":"105189337","full_name":"geomatics-io/MacroScope","owner":"geomatics-io","description":"MacroScope is a portable SQL ADO.NET provider, automagically transforming SQL commands to a form expected by different database engines. It also includes an SQL parser and exports an SQL object model.","archived":false,"fork":false,"pushed_at":"2017-09-28T19:54:34.000Z","size":449,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-01T07:22:48.928Z","etag":null,"topics":["adonet","csharp","dotnet-library"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geomatics-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-28T19:13:37.000Z","updated_at":"2019-11-30T06:56:51.000Z","dependencies_parsed_at":"2023-04-05T06:32:23.021Z","dependency_job_id":null,"html_url":"https://github.com/geomatics-io/MacroScope","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/geomatics-io/MacroScope","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geomatics-io%2FMacroScope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geomatics-io%2FMacroScope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geomatics-io%2FMacroScope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geomatics-io%2FMacroScope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geomatics-io","download_url":"https://codeload.github.com/geomatics-io/MacroScope/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geomatics-io%2FMacroScope/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261374414,"owners_count":23148977,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adonet","csharp","dotnet-library"],"created_at":"2024-11-12T20:23:16.931Z","updated_at":"2025-06-22T22:06:38.486Z","avatar_url":"https://github.com/geomatics-io.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MacroScope - portable SQL ADO.NET provider\n\nThis is a fork of [Vaclav Bartas](http://www.mangrove.cz) [MacroScope](https://sourceforge.net/projects/macroscope/).\n\nMacroScope is a .NET library (2 libraries, actually) automagically\ntransforming SQL commands to a form expected by different database\nengines, so that (for example) the MS SQL Server-specific construction\n\n`SELECT TOP 10 * FROM table_name`\n\nbecomes\n\n`SELECT * FROM table_name WHERE rownum \u003c= 10`\n\nwhen used for Oracle. This is done transparently behind the standard\nASP.NET interface, without littering code with conditionals and\nleaving the application programmer free to concentrate on the\napplication logic.\n\nThe transformation is implemented by a custom ADO.NET database\nprovider, which parses the SQL passed to it and then uses (hardcoded\nbut encapsulated) rules to recognize and rewrite constructions\nincompatible with the target database. As an added benefit, the parsed\ntree is available to the application, enabling custom SQL\ntransformations (adding selected columns, conditions, clauses etc.) on\nan object model based on the standard SQL grammar, even for commands\nnot known at compile time and passed to the application as simple\nstrings.\n\nMacroScope supports a practically useful subset of SQL commands\nINSERT, SELECT, UPDATE and DELETE, for 4 database backends: MySQL,\nMS SQL Server, Oracle and MS Access. It is used in production, but new\nusers will probably find the list of supported backends incomplete,\nsome constructions they'd like to use unsupported and many\nincompatibilities remaining (especially for MS Access - there's a lot\nthings it just doesn't do, and no amount of SQL rewriting is going to\nmake the backend more capable). These limitations are an important\nreason for releasing the component as Open Source, so that many users\ncan improve it for their specific needs and share their improvements\nfor our mutual benefit.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeomatics-io%2Fmacroscope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeomatics-io%2Fmacroscope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeomatics-io%2Fmacroscope/lists"}