### 🧩 Database Explorer & SQL Editor Screenshot 2025-10-14 at 23 40 58 Screenshot 2025-10-14 at 23 44 16 Flocon gives you direct access to your app’s **local databases** (SQLite, Room, SQLDelight, etc.), with a clean interface for exploring schemas and querying data. Key capabilities include: - **Automatic detection** of all SQLite databases on Android. - Listing all tables and their schemas. - Running **custom SQL queries** with syntax highlighting. - Auto-updating queries and saving favorites. - Generating `INSERT` and `DELETE` queries automatically. #### Android (Automatic Detection) On Android, Flocon automatically scans your app's internal storage and lists all SQLite databases. You don't need additional configuration to see them in the desktop app. #### Manual Registration (Android) If you want to use a custom display name or register an **in-memory database**, you can use `floconRegisterDatabase`: ```kotlin // Register an In-Memory Room Database val dogDatabase = Room.inMemoryDatabaseBuilder(context, DogDatabase::class.java).build() floconRegisterDatabase( displayName = "In-Memory Dogs", openHelper = dogDatabase.openHelper ) ``` #### Multiplatform (Desktop & iOS) For Kotlin Multiplatform projects (Desktop and iOS), you must provide the absolute path to the database file: ```kotlin // On Desktop val dbFile = File(System.getProperty("java.io.tmpdir"), "app_database.db") floconRegisterDatabase( displayName = "App DB", absolutePath = dbFile.absolutePath, ) ``` ```kotlin // On iOS val dbPath = "${documentDirectory()}/app_database.db" floconRegisterDatabase( displayName = "App DB", absolutePath = dbPath ) ``` #### Database Query Logging Flocon can also track and display all SQL queries executed by your app in real-time. This is particularly useful for debugging transactions, performance issues, or verifying the exact SQL generated by ORMs like Room. Screenshot 2025-12-30 at 15 01 42 ##### Room Integration For Room databases, you can easily log all queries by using the `setQueryCallback` method when building your database: ```kotlin val dbName = "dogs_database" val database = Room.databaseBuilder( context.applicationContext, DogDatabase::class.java, dbName ).setQueryCallback({ sqlQuery, bindArgs -> // Log the query to Flocon floconLogDatabaseQuery( dbName = dbName, sqlQuery = sqlQuery, bindArgs = bindArgs ) }, Executors.newSingleThreadExecutor()) .build() ``` ##### Manual Logging If you are not using Room or want to log queries manually, you can use the `floconLogDatabaseQuery` function directly: ```kotlin floconLogDatabaseQuery( dbName = "my_custom_db", sqlQuery = "SELECT * FROM users WHERE id = ?", bindArgs = listOf(42) ) ``` #### SQL Workspace The Flocon Desktop app provides a full SQL workspace where you can: 1. **Explore**: See all tables and their columns. 2. **Query**: Write any SQL query and see the results in a formatted table. 3. **Favorites**: Save your most used queries for quick access later. 4. **Toolbox**: Quickly generate common SQL statements from the UI.