Repository navigation
Releases: JekaSylar/TPDSSDataManager
Release list
TPDSSDataManager v1.5.2
🚀 What's New
This update introduces Dynamic Schema Matching. The system is now much more flexible and resilient when dealing with database files that have slight structural differences (e.g., missing columns in some employee files). It automatically detects and maps only the overlapping fields between the template and the source files.
🐛 Bug Fixes
- "Too few parameters" Error Fixed (Merge Module): Addressed a critical crash in
MergeDatabasesAsync. The system no longer assumes all databases have the exact same columns. It now dynamically checks for missing fields and usesIntersectto build safeINSERT INTOqueries, preventing crashes. - "Item not found in this collection" Error Fixed (Test Module): Resolved a crash in
DatabaseTester. When analyzing chunks that are missing certain columns, the tester now safely substitutes them with empty values instead of throwing a missing element exception.
🔧 Technical Details
- Implemented dynamic
Fieldintersection for normal and Multi-Valued Fields (MVF) to ensure strict compatibility before executing DAORecordsetoperations. - Added safe
nullhandling (List<Field?>) in the fast-key string builder. - Enhanced Primary Key (
Ідентифікатор) condition formatting to safely parseGuidandstringtypes in dynamic SQL queries.
TPDSSDataManager v1.5.1
🚀 What's New
This patch addresses a data duplication issue involving blank records and introduces an automatic cleanup mechanism during the database merging process.
🐛 Bug Fixes
- Empty Row Duplication Fixed (Split Module): Addressed a bug where empty records (rows with
NULLin the department name) bypassed the deletion filter. These blank rows are now properly destroyed during the split process instead of being copied into every employee's file.
🧹 Data Cleanup Features
- Automatic Garbage Filtering (Merge Module): The Merge logic has been updated to actively ignore empty rows (
[Назва ССП] IS NOT NULL) when combining databases viaINSERT INTOand when processing Multi-Valued Fields (MVF). - Backward Compatibility: Because of this new filter, you can safely merge files that employees have already submitted. The system will automatically clean up any existing "garbage" rows without requiring employees to redo their work.
🔧 Technical Details
- Version bumped to
1.5.1 - Added SQL
IS NULLhandling for Access DB execution.
TPDSSDataManager v1.5.0
🚀 What's New
This update completely overhauls the database merging logic to ensure 100% data integrity and drastically improves testing performance.
🐛 Bug Fixes
- Critical Merge Fix (ID Preservation): Fixed an issue where merging Access databases would regenerate
AutoNumberfields ("Ідентифікатор"). The merge process now uses an "Empty Shell" pattern to strictly preserve the original IDs from the source files. - Multi-Valued Fields (MVF) Fix: Resolved an issue where checking/unchecking checkboxes in MVF columns (like "Місяць відображення") would result in duplicate or lost values during the merge. Values are now precisely overwritten.
- UI Readability Fix: Fixed a visual bug where secondary disabled buttons (like "Clear") had white unreadable text on a light gray background. The
ModernButtonStyleis now globally applied to all buttons.
⚡ Performance & Features
- Lightning-fast Database Tester: Refactored the
DatabaseTesterto cache field objects instead of querying COM objects by string name on every iteration. This reduces the final deep-comparison test time from ~40 minutes down to a few seconds. - Graceful Cancellation: Added
CancellationTokensupport to the merge process. Clicking "Cancel" now safely stops the operation without leaving the database locked.
🔧 Technical Details
- Version bumped to
1.5.0 - Tested with Access
.accdbfiles containing complex structural requirements.
TPDSSDataManager
This update optimizes database management for MS Access, focusing on stable processing of multi-valued fields (MVF) and resolving database locking conflicts.
Key Improvements:
ID Preservation: Implemented direct data insertion to ensure the "Ідентифікатор" (ID) field remains unchanged during database merging.
MVF Handling: Resolved the "Cannot refer to a table with a multi-valued field using an IN clause" error by utilizing temporary Linked Tables, ensuring checkbox states ("Місяць відображення") are preserved correctly.
Selective Logging: Introduced the SimpleLogger class. It now generates a TPDSS_Errors.txt file in the target directory only if an error occurs.
Log Management: The log file is automatically cleared at the start of every new operation and includes a 1 MB size limit to prevent disk overflow. If no errors occur during processing, no log file is created, keeping the workspace clean.
TPDSS Data Manager
TPDSS Data Manager
TPDSS Data Manager is a Windows desktop application built with WPF and C#. It is specifically designed to automate the processing, splitting, and merging of Microsoft Access databases (.accdb) for regional statistical departments.
🚀 Features
- Database Splitting: Analyzes a master Access database, builds a hierarchical tree of structural units, and allows users to extract specific departments into separate
.accdbfiles. - Database Merging: Merges multiple separated Access databases back into a single consolidated master file without duplicating records.
- Asynchronous Processing: Utilizes background tasks (
Task.Run) and modernIProgress<T>interfaces to keep the UI responsive during heavy database operations. - Modern UI: Clean, intuitive WPF interface with progress tracking and real-time status updates.
🛠 Prerequisites & Requirements
To run or build this project, your system must meet the following requirements:
- .NET 10.0 Ensure you have the .NET 10.0 SDK or Runtime installed on your machine.
- Microsoft Access Database Engine (DAO)
The application interacts with.accdbfiles usingMicrosoft.Office.Interop.Access.Dao. You must have one of the following installed:- Microsoft Office (with MS Access included) installed on your system.
- OR the standalone Microsoft Access Database Engine Redistributable (Make sure the architecture, x86 or x64, matches your application's build target).
💻 Tech Stack
- Language: C#
- Framework: .NET 10.0
- UI: Windows Presentation Foundation (WPF)
- Database Interop: DAO (Data Access Objects) via Office Interop