Datasets Engine (Reference) manages database interactions, query execution, and data synchronization within the FrameworX runtime environment.
Advanced Topic: This document provides deep technical insight into the Dataset module execution engine. Most solutions don't require this level of understanding - the default engine behavior handles typical database operations automatically.
The Dataset Engine orchestrates the internal mechanics of database operations through a multi-layered architecture. This reference covers the deep technical aspects of how the engine processes requests internally.
The engine orchestrates:
Understanding the engine internals helps when:
All Dataset Module properties exist in the server domain, creating a shared resource environment:
Example Risk Scenario:
1. Client A sets: SQLStatement = "SELECT * FROM Orders WHERE Status='Open'"
2. Client B sets: SQLStatement = "SELECT * FROM Orders WHERE Status='Closed'"
3. Execute command runs with Client B's statement (last write wins)
Strategy 1: Dedicated Query Objects
Strategy 2: Synchronization Patterns
Strategy 3: Client-Side Processing
The Dataset Module provides three primary patterns for handling concurrent access:
Pattern 1: Direct Script Processing
csharp
DataTable result = @Dataset.Query.Query1.SelectCommand();
// Process data locally without server domain impact
foreach(DataRow row in result.Rows) {
// Local processing
}
Pattern 2: Tag Distribution
csharp
// Assign to DataTable tag for module sharing
@Tag.MyDataTable = @Dataset.Query.Query1.SelectCommand();
// Now available to displays, reports, etc.
Pattern 3: Mapped Navigation
csharp
// Configure mapping, then navigate rows
@Dataset.Query.Query1.Select();
@Dataset.Query.Query1.Next(); // Moves to next row
Option 1: Command Line Backup
bash
sqlite3 source.db ".backup backup.db"
Option 2: Online Backup API
Option 3: File System Copy