1245a196ce
We want to migrate the samples to NNBD. In order for the old samples to keep running on the legacy bots, this duplicates all samples, and changes the legacy bots to run the copies. Note this will cause the legacy bots to report that all the samples tests are skipped and that there are now new tests in the samples_2 suite. Existing failures may re-appear. These will be be re-approved or alternatively Skipped. The follow up CL migrates samples/ffi to NNBD. Issue: https://github.com/dart-lang/sdk/issues/43600. TEST=samples TEST=samples_2 Change-Id: Ib40f8fb71f81c091973aa0f860b1a49bac120d6c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173523 Reviewed-by: Alexander Thomas <athom@google.com>
1.6 KiB
1.6 KiB
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 pub get and pub run example/main should produce the following output.
$ pub get
Resolving dependencies... (6.8s)
+ analyzer 0.35.4
...
+ yaml 2.1.15
Downloading analyzer 0.35.4...
Downloading kernel 0.3.14...
Downloading front_end 0.1.14...
Changed 47 dependencies!
Precompiling executables... (18.0s)
Precompiled test:test.
$ pub 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).