Help and common questions
Frequently Asked Questions
Explore JasonQuery by topic, from everyday database work and safety to platform decisions, open-source development, and support.
About JasonQuery
What is JasonQuery, and may I use it for commercial work?
JasonQuery is a free Windows x64 desktop database query and management tool for Oracle, PostgreSQL, SQL Server, and MySQL. It combines SQL editing and execution with database-aware AutoComplete, SQL formatting, Schema Browser workflows, SQL History, connection management, diagnostics, update handling, and protected local application data.
You may use JasonQuery for personal or commercial work. JasonQuery-owned source and materials are released under the MIT License. Third-party and proprietary components, including ComponentOne and Devart, remain subject to their respective licenses.
Who is JasonQuery designed for?
JasonQuery is designed for people who regularly work with relational databases and want a focused Windows desktop tool for everyday SQL work. It may be especially suitable if you value:
- A focused database client
- Database-aware SQL editing
- Transparent internal SQL activity
- User-controlled transactions
- Schema-aware result information
- A lightweight alternative for quick database investigation
JasonQuery is not intended to be an enterprise platform or a replacement for every database management tool.
Which databases does JasonQuery support?
JasonQuery supports Oracle, PostgreSQL, SQL Server, and MySQL. Provider-specific behavior is kept separate where the platforms differ in SQL syntax, metadata, transactions, locking, or data types.
What distinguishes JasonQuery from other database tools?
JasonQuery focuses on three principles: Transparency, Safety, and Practicality.
- Transparency: SQL executed internally by JasonQuery, including SQL triggered by features such as AutoComplete, can be inspected through SQL History.
- Safety: JasonQuery does not decide when to COMMIT or ROLLBACK. Transaction decisions remain under your control, while pending transactions trigger periodic reminders.
- Practicality: JasonQuery is a focused Windows database tool for everyday SQL work. It does not try to replace every database client; it provides another practical choice.
What is JasonQuery not intended to be?
JasonQuery is a focused Windows database application built around a specific set of design decisions. It is not intended to be:
- A cross-platform database framework
- A replacement for every commercial database client
- A community-driven framework
- A drop-in abstraction layer for replacing Devart or ComponentOne
- A clone-and-press-F5 sample project
Features & Safety
How does JasonQuery's AutoComplete work?
JasonQuery's AutoComplete is database-aware. It uses metadata obtained from the connected database to provide context-aware suggestions while you edit SQL.
The SQL used internally to retrieve metadata is not hidden. You can inspect it through SQL History, reflecting JasonQuery's principle that the application should not behave like a black box.
What does SQL History record?
SQL History records SQL executed during your work with JasonQuery, including SQL generated or run internally for features such as metadata retrieval and AutoComplete.
The purpose is transparency: you can inspect what JasonQuery actually executed instead of having internal database activity remain hidden.
Does JasonQuery automatically commit or roll back changes?
No. JasonQuery does not automatically COMMIT or ROLLBACK your changes. You decide when a transaction should be committed or rolled back.
If a transaction remains uncommitted for five minutes, JasonQuery displays a reminder. If it remains unresolved, another reminder appears five minutes later. This helps prevent a forgotten transaction from remaining open and potentially locking database objects without taking control away from you.
Can I review generated SQL before it runs?
Yes. Data-editing and database-object workflows can display the generated SQL so you can review it before execution.
How does JasonQuery distinguish production and test environments?
Connection environments can use strong, user-customizable colors, such as red or purple for production and green or yellow for test environments.
This is more than visual customization: it helps you recognize the active database environment at a glance before executing SQL.
How does JasonQuery display large text and binary values?
Large text and binary values can be represented by a compact alias or a configurable prefix preview. Double-click the value in the result grid to open and view the full content when needed.
What is JasonQuery.db?
JasonQuery.db is JasonQuery's own local application database. It is separate from the Oracle, PostgreSQL, SQL Server, or MySQL databases to which JasonQuery connects.
It stores saved connection information and other persistent application state. Current Storage V2 uses a SQLCipher 4-compatible format through an isolated Modern SQLite Runtime.
How is JasonQuery.db protected?
JasonQuery supports Windows Protected and Custom Password protection modes. Windows Protected mode is tied to the applicable Windows user protection environment, while Custom Password mode uses a password chosen by you.
A Recovery Key applies only to Windows Protected mode. Saved Oracle, PostgreSQL, SQL Server, and MySQL credentials are protected by the secured JasonQuery.db.
What should I do before reinstalling Windows or if my Windows profile may be lost?
If you use Windows Protected mode, create and securely store a Recovery Key in advance. It is designed for disaster recovery when the original Windows profile or protection environment is no longer available.
Treat JasonQuery.db, JasonQuery.security.json, and every Recovery Key as security-sensitive material. Never post them in public issues or logs.
What happens to older JasonQuery.db files?
Supported historical Storage V1 databases can migrate explicitly to Storage V2 while preserving the applicable security mode, logical database key, application schema, and saved connection information.
Unknown storage versions fail closed instead of being guessed through provider probing or exception fallback.
Platform & Architecture
Which operating systems does JasonQuery support?
JasonQuery is a Windows x64 desktop application. The public source-build workflow is qualified on Windows 10 or Windows 11 x64 with Visual Studio 2022 and .NET Framework 4.8.
JasonQuery does not provide or support an x86 build, and the repository does not define a supported Linux or macOS build.
Will JasonQuery become cross-platform?
No cross-platform development is currently planned. JasonQuery is maintained by one developer, so development and testing will remain focused on Windows to keep the project practical, stable, and maintainable.
Why does JasonQuery use WinForms and .NET Framework 4.8 instead of modern .NET?
This is a deliberate long-term maintenance choice. Newer .NET releases have their own support lifecycles and may require repeated migrations, compatibility checks, and changes to third-party components.
For a one-person project, a conservative foundation is also a commitment to stability. .NET Framework 4.8 is a mature Windows technology with a long history of compatibility. JasonQuery will continue using it unless a future change offers a clear and worthwhile benefit.
Will JasonQuery support multiple database connections in one application instance?
Not currently. Each JasonQuery application instance connects to one database at a time. Multiple simultaneous connections may be considered in the future, but this is not a committed roadmap item because the change would be substantial for a one-person project.
Any future design would also need to preserve JasonQuery's safety-first approach. Strong, user-customizable colors help identify production and test environments at a glance, and a multi-connection design would only be considered if that clarity could be maintained.
Open Source & Development
Which license covers JasonQuery?
JasonQuery-owned source and materials are released under the MIT License. See LICENSE.md in the repository for the full text.
The MIT License does not replace the licenses of third-party or proprietary components. See THIRD-PARTY-NOTICES.md for attribution and licensing boundaries.
Can I use and redistribute JasonQuery under the MIT License?
The MIT License permits use, modification, and redistribution of JasonQuery-owned source and materials, subject to the terms of that license.
If you redistribute a binary containing third-party components such as ComponentOne or Devart, you are responsible for complying with the applicable third-party license terms.
Why is JasonQuery open source?
JasonQuery is open source primarily for transparency and trust. The source is available so users can inspect how JasonQuery works and make a more informed decision about whether they trust the software.
JasonQuery is primarily a user-focused project, not a community-driven framework. Publishing the source does not mean users are expected to build it or replace its commercial dependencies; the official binary remains the easiest way to use JasonQuery.
Does JasonQuery include automated tests?
Yes. The normal deterministic regression gate uses JasonLibrary.Tests and JasonQuery.Tests and does not require real database servers. It covers core application behavior, not only UI interactions.
- Database locking detection
- Pending-transaction reminder policies
- DML preview generation
- Database-specific error analysis
- SQL editor AutoComplete behavior
- SQL parsing and internal utility logic
Real database tests are kept in JasonQuery.IntegrationTests and require dedicated mutable Oracle, PostgreSQL, SQL Server, and MySQL test environments. Never run integration tests against production databases.
Should I download the official release or build from source?
For most users, downloading the official release is recommended. The repository is provided primarily for transparency, inspection, development, and contribution.
A full source build requires the appropriate commercial licenses and the qualified local dependencies documented in BUILD.md.
Why can't I rebuild JasonQuery immediately after cloning the repository?
The public repository intentionally does not contain every binary dependency required for a full build. Missing inputs include MESCIUS ComponentOne WinForms, Devart .NET Framework providers, the private IconLibrary assembly, and qualified SQLite or SQLCipher runtime files.
Follow BUILD.md to prepare the required .local dependency tree before rebuilding the solution.
What development environment is supported?
The qualified source-build baseline is Windows 10 or Windows 11 x64, Visual Studio 2022, .NET Framework 4.8, and C# 8.0. The supported solution configurations are Debug | x64 and Release | x64.
See BUILD.md for the complete dependency versions and setup procedure.
Why doesn't GitHub Actions build the complete application?
The complete application build depends on licensed or private inputs that are intentionally not stored in the public repository.
GitHub-hosted automation therefore focuses on repository validation, secret scanning, public endpoint monitoring, dependency maintenance, and release-preparation checks. Official full release qualification remains a trusted Windows workflow.
Why does JasonQuery use ComponentOne and Devart?
JasonQuery intentionally uses commercial components from ComponentOne and Devart. They are part of the current design, not temporary dependencies expected to be replaced by community mocks.
Devart provides database connectivity and rich provider metadata used throughout JasonQuery's database-aware features. ComponentOne provides UI components, including the grid infrastructure used to present database results.
Can ComponentOne and Devart be replaced with mock interfaces?
Not as a simple drop-in replacement. JasonQuery is deeply integrated with ComponentOne and Devart, especially Devart's database providers and schema metadata.
After a query, JasonQuery uses provider metadata for Primary Key and Not Null indicators in grid headers, data types, column comments, source table names, result presentation, and export workflows. Another driver or mock may not expose equivalent metadata consistently, so matching the current behavior would require substantial changes throughout the application.
Can I contribute without ComponentOne or Devart licenses?
Yes. Contributions that do not depend on those commercial components, such as core business logic, utility classes, documentation, or core-layer bug fixes, can be submitted without the licenses.
Before opening a pull request, read CONTRIBUTING.md and BUILD.md, keep the change focused, run the validation appropriate to the change, and do not commit private or licensed dependencies or sensitive material.
Where can I learn more about the project?
The repository includes README.md for the product overview, CHANGELOG.md for release-level changes, EVOLUTION.md for project history, ARCHITECTURE.md for runtime and storage design, BUILD.md for source-build setup, Tests/README.md for test organization, CONTRIBUTING.md for contributions, SECURITY.md for security policy, and THIRD-PARTY-NOTICES.md for attribution and redistribution boundaries.
Download & Support
Where should I download JasonQuery?
Use an official distribution channel: the JasonQuery website or the JasonQuery repository's GitHub Releases page. The normal production package is JasonQuery64.zip.
When package-integrity information matters, compare the package with the release notes and published SHA-256 value for that release.
How do I start JasonQuery after downloading it?
Extract the current 64-bit ZIP package to a folder, then run JasonQuery.exe. Review the Release Notes before replacing an existing version.
What is the difference between Production and Test releases?
The latest Production release is the normally supported end-user release. Test releases are intended for earlier validation and may be replaced more quickly; security support for Test releases is best effort.
How does JasonQuery update itself?
JasonQuery checks for available updates according to your update settings. When a new version is available, JasonQuery asks whether you want to update. If you confirm, the separate Updater application downloads the selected package, replaces the existing files, and lets you start the updated version.
JasonQuery supports Production and Test release channels.
How does JasonQuery protect the update process?
JasonQuery validates release metadata and package integrity before replacing application files. The workflow includes package-size and SHA-256 verification, safe ZIP extraction, rejection of unsafe paths, verified backup, transactional file replacement, and rollback verification.
The separate Updater executable performs the file-system mutation portion so the running main application does not need to overwrite itself.
Can an organization manage updates internally?
Yes. Production releases may include a Company Update package for administrators who distribute updates through an internal folder or UNC path.
This allows an organization to use JasonQuery's Company Update Folder workflow instead of requiring every workstation to retrieve the package directly from the public download location.
Where can I find the Release Notes?
Open the Release Notes page from the main navigation to review new features, enhancements, bug fixes, and published package information by version.
Is the website available in languages other than English?
English is the only maintained website language. If you prefer another language, use your browser's built-in page translation feature.
How should I report a normal bug or request a feature?
Use the repository's GitHub Issue Forms. Include the JasonQuery version or commit, Windows environment, affected database platform and version when relevant, clear reproduction steps, expected behavior, and actual behavior.
Remove credentials, Recovery Keys, private database contents, and other sensitive information before posting.
How should I report a security vulnerability?
Do not open a public issue containing security-sensitive details. Use GitHub Private Vulnerability Reporting from the repository's Security tab and choose Report a vulnerability.
See SECURITY.md in the repository for scope, reporting guidance, and response targets.
What sensitive information should I avoid sharing publicly?
Use synthetic data whenever possible and share only the minimum information needed to reproduce a problem. Do not publicly post:
- Database passwords or complete connection strings
- Recovery Keys or other recovery material
- Private keys or vendor activation material
- Production JasonQuery.db or JasonQuery.security.json files
- Production database contents
- SQL History or logs that contain sensitive SQL, identifiers, or environment details