Files
sdk/samples/ffi/sqlite
Martin Kustermann 85e1bbf45c [gardening] Update samples/ffi/sqlite sdk constraint to ^3.0.0 to enable class modifiers
The test is currently failing due to missing `class-modifiers` language
feature which is only available ^3.0.0

Change-Id: Id896afc70e7cddcdbe6f27fb89a4ed0a773f34ae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/333820
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2023-11-03 08:39:48 +00:00
..
2023-02-21 21:23:43 +00:00
2023-03-30 19:19:21 +00:00

Sample code dart:ffi

This is an illustrative sample for how to use dart:ffi.

Prerequirement

For Windows, Linux, and MacOS, you should make sure, sqlite dev lib installed on your system.

Windows user can download dll from https://www.sqlite.org/download.html

If you do not have any sqlite3.dll or so file, you may found error message:

Unhandled exception:
Invalid argument(s): Failed to load dynamic library (126)
#0      _open (dart:ffi-patch/ffi_dynamic_library_patch.dart:13:55)
#1      new DynamicLibrary.open (dart:ffi-patch/ffi_dynamic_library_patch.dart:22:12)

Building and Running this Sample

Building and running this sample is done through pub. Running dart run example/main should produce the following output.

$ dart run example/main
1 Chocolade chip cookie Chocolade cookie foo
2 Ginger cookie null 42
3 Cinnamon roll null null
1 Chocolade chip cookie Chocolade cookie foo
2 Ginger cookie null 42
expected exception on accessing result data after close: The result has already been closed.
expected this query to fail: no such column: non_existing_column (Code 1: SQL logic error)

Tutorial

A tutorial walking through the code is available in docs/sqlite-tutorial.md. For information on how to use this package within a Flutter app, see docs/android.md. (Note: iOS is not yet supported).