diff options
author | mattn <mattn.jp@gmail.com> | 2012-03-12 14:20:55 +0900 |
---|---|---|
committer | mattn <mattn.jp@gmail.com> | 2012-03-12 14:20:55 +0900 |
commit | 224815d665ab9f872c6bc0d9dad1101cc5ec6b1a (patch) | |
tree | 8506fd7628a40005c9536116857e7031d747e628 /sqlite3.go | |
parent | database/sql expects io.EOF after all rows have been Next'ed (diff) | |
download | golite-224815d665ab9f872c6bc0d9dad1101cc5ec6b1a.tar.gz golite-224815d665ab9f872c6bc0d9dad1101cc5ec6b1a.tar.xz |
merged #11
close #11
Diffstat (limited to 'sqlite3.go')
-rw-r--r-- | sqlite3.go | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -91,6 +91,12 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { if db == nil { return nil, errors.New("sqlite succeeded without returning a database") } + + rv = C.sqlite3_busy_timeout(db, 500) + if rv != C.SQLITE_OK { + return nil, errors.New(C.GoString(C.sqlite3_errmsg(db))) + } + return &SQLiteConn{db}, nil } @@ -174,7 +180,7 @@ func (s *SQLiteStmt) bind(args []driver.Value) error { rv = C.sqlite3_bind_int(s.s, n, C.int(v)) case bool: if bool(v) { - rv = C.sqlite3_bind_int(s.s, n, -1) + rv = C.sqlite3_bind_int(s.s, n, 1) } else { rv = C.sqlite3_bind_int(s.s, n, 0) } @@ -233,7 +239,11 @@ type SQLiteRows struct { } func (rc *SQLiteRows) Close() error { - return rc.s.Close() + rv := C.sqlite3_reset(rc.s.s) + if rv != C.SQLITE_OK { + return errors.New(C.GoString(C.sqlite3_errmsg(rc.s.c.db))) + } + return nil } func (rc *SQLiteRows) Columns() []string { |