Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bat0ri/mssql-client
Qt client for MS SQL datadase
https://github.com/bat0ri/mssql-client
client database mssql mssql-database orm orm-framework qt6-application qt6-gui sql
Last synced: 7 days ago
JSON representation
Qt client for MS SQL datadase
- Host: GitHub
- URL: https://github.com/bat0ri/mssql-client
- Owner: bat0ri
- Created: 2023-11-30T16:15:26.000Z (about 1 year ago)
- Default Branch: dev
- Last Pushed: 2023-12-14T10:28:45.000Z (about 1 year ago)
- Last Synced: 2024-11-17T19:49:43.205Z (2 months ago)
- Topics: client, database, mssql, mssql-database, orm, orm-framework, qt6-application, qt6-gui, sql
- Language: C++
- Homepage:
- Size: 13.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Qt Database Client Application
This Qt-based application serves as a versatile client for database management, enabling users to execute SQL queries and utilize Object-Relational Mapping (ORM) functionalities.
## Features
- **SQL Query Execution**: Execute custom SQL queries directly through the application.
- **ORM Support**: Utilize Object-Relational Mapping to interact with the database programmatically.
- **Multi-Database Compatibility**: Compatible with various database systems, such as SQL Server, MySQL, PostgreSQL, etc.## Usage
### Installation
1. Clone this repository.
2. Install necessary dependencies. (Provide details if any)
3. Configure the database connection by modifying the provided connection string in the code.```cpp
db = QSqlDatabase::addDatabase("QODBC");
QString connectString = "DRIVER={SQL Server};";
connectString.append("SERVER=YOUR_SERVER_NAME\YOUR_SQL_INSTANCE;"); // Hostname, SQL-Server Instance
connectString.append("DATABASE=your_database_name;"); // Schema
connectString.append("UID=your_username;"); // User
connectString.append("PWD=your_password;"); // Pass
connectString.append("Trusted_Connection=Yes;");
db.setDatabaseName(connectString);
```Simply replace YOUR_SERVER_NAME, YOUR_SQL_INSTANCE, your_base_name, your_username and your_password with the appropriate values for your database data.
## PART ONE
- **Tables Creation**: Utilized SQL queries to create three tables incorporating concepts like NOT NULL, DEFAULT, PRIMARY KEY, CHECK, and IDENTITY.
- **Inter-table Relations**: Established two inter-table relationships:
1. One without systemic cascading deletion and updating.
2. Another with systemic cascading deletion and updating (ON DELETE CASCADE ON UPDATE CASCADE).
- **Stored Procedure Creation**: Developed a stored procedure with output parameters.## PART TWO
- **Client-Side Implementation**:
- Developed a user interface with a main screen form displaying tables from the database.
- Implemented database connection using QODBC driver to QSqlDatabase datatype and employed QSqlTableModel for each table with an OnManualSubmit hashing strategy.- **Alternative Form and Views**:
- Created an alternative form dynamically displaying all tables in one QSqlTableModel.
- Established a VIEW on the server, presenting data from three tables as a single connected table and displayed it on a separate form.
- Displayed the output of a stored procedure in a Label on the main or alternative form.### Task Implementations
1. **Task 1**:
- Utilized SQL queries to gather information about deliveries from contracts ending in the current year.2. **Task 2**:
- Employed SQL queries with grouping or window functions to collect information about deliveries from contracts ending in the current year.3. **Task 3**:
- Implemented various methods to retrieve information about the availability of parts at warehouses based on specific criteria, including expression RA, RIK language query, and SQL queries with subqueries.