Skip to content

Releases: JekaSylar/TPDSSDataManager

TPDSSDataManager v1.5.2

Choose a tag to compare

@JekaSylar JekaSylar released this 06 Aug 16:23

🚀 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 uses Intersect to build safe INSERT INTO queries, 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 Field intersection for normal and Multi-Valued Fields (MVF) to ensure strict compatibility before executing DAO Recordset operations.
  • Added safe null handling (List<Field?>) in the fast-key string builder.
  • Enhanced Primary Key (Ідентифікатор) condition formatting to safely parse Guid and string types in dynamic SQL queries.

TPDSSDataManager v1.5.1

Choose a tag to compare

@JekaSylar JekaSylar released this 09 Jul 13:37

🚀 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 NULL in 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 via INSERT INTO and 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 NULL handling for Access DB execution.

TPDSSDataManager v1.5.0

Choose a tag to compare

@JekaSylar JekaSylar released this 08 Jul 08:34

🚀 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 AutoNumber fields ("Ідентифікатор"). 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 ModernButtonStyle is now globally applied to all buttons.

⚡ Performance & Features

  • Lightning-fast Database Tester: Refactored the DatabaseTester to 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 CancellationToken support 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 .accdb files containing complex structural requirements.

TPDSSDataManager

Choose a tag to compare

@JekaSylar JekaSylar released this 02 Jul 08:21

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

Choose a tag to compare

@JekaSylar JekaSylar released this 20 May 12:37

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 .accdb files.
  • 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 modern IProgress<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:

  1. .NET 10.0 Ensure you have the .NET 10.0 SDK or Runtime installed on your machine.
  2. Microsoft Access Database Engine (DAO)
    The application interacts with .accdb files using Microsoft.Office.Interop.Access.Dao. You must have one of the following installed:

💻 Tech Stack

  • Language: C#
  • Framework: .NET 10.0
  • UI: Windows Presentation Foundation (WPF)
  • Database Interop: DAO (Data Access Objects) via Office Interop