dust_db_sqlite3 0.1.4 copy "dust_db_sqlite3: ^0.1.4" to clipboard
dust_db_sqlite3: ^0.1.4 copied to clipboard

SQLite runtime support for generated Database code.

example/dust_db_sqlite3_example.dart

import 'package:dust_dart/db.dart';
import 'package:dust_db_sqlite3/dust_db_sqlite3.dart';

/// Opens an in-memory SQLite database and uses Dust's DB runtime helpers.
Future<void> main() async {
  final db = Sqlite3Driver.connect(
    const SqliteConnectOptions.memory(foreignKeys: true),
    migrations: const {
      '0001_create_users.sql': '''
CREATE TABLE users (
  id INTEGER PRIMARY KEY,
  email TEXT NOT NULL UNIQUE,
  name TEXT NOT NULL
);
''',
    },
  );

  try {
    final inserted = await queryExecute(
      'INSERT INTO users (email, name) VALUES (?, ?)',
      ['ada@example.com', 'Ada'],
    ).execute(db);
    print('inserted rows: ${inserted.rowsAffected}');

    final rows = await queryRaw(
      'SELECT id, email, name FROM users WHERE id = ?',
      [inserted.lastInsertId],
    ).fetch(db);
    final user = rows.single;
    print(
      'first user: ${user.read<String>('name')} <${user.read<String>('email')}>',
    );

    final renamed = await db.transaction((tx) async {
      await queryExecute(
        'UPDATE users SET name = ? WHERE email = ?',
        ['Grace', 'ada@example.com'],
      ).execute(tx);
      return const Ok<Unit, SqlxError>(unit);
    });

    renamed.match(
      ok: (_) => print('transaction committed'),
      err: (error) => throw StateError('transaction failed: $error'),
    );
  } finally {
    await db.close();
  }
}
0
likes
0
points
203
downloads

Documentation

Documentation

Publisher

verified publisherwidget-lab.dev

Weekly Downloads

SQLite runtime support for generated Database code.

Repository (GitHub)
View/report issues

Topics

#codegen #database #sqlite #sql #sqlite3

License

unknown (license)

Dependencies

dust_dart, sqlite3

More

Packages that depend on dust_db_sqlite3