Refactor memdb API.

This commit is contained in:
Nuno Cruces
2023-05-31 15:47:28 +01:00
parent d0d4b0e1a2
commit ac2836bb82
13 changed files with 424 additions and 448 deletions

View File

@@ -0,0 +1,51 @@
package sqlite3memdb_test
import (
"database/sql"
"fmt"
"log"
_ "embed"
_ "github.com/ncruces/go-sqlite3/driver"
_ "github.com/ncruces/go-sqlite3/embed"
"github.com/ncruces/go-sqlite3/sqlite3memdb"
)
//go:embed testdata/test.db
var testDB []byte
func Example() {
sqlite3memdb.Create("test.db", testDB)
db, err := sql.Open("sqlite3", "file:/test.db?vfs=memdb")
if err != nil {
log.Fatal(err)
}
defer db.Close()
_, err = db.Exec(`INSERT INTO users (id, name) VALUES (3, 'rust')`)
if err != nil {
log.Fatal(err)
}
rows, err := db.Query(`SELECT id, name FROM users`)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id, name string
err = rows.Scan(&id, &name)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s %s\n", id, name)
}
// Output:
// 0 go
// 1 zig
// 2 whatever
// 3 rust
}