aboutsummaryrefslogtreecommitdiff
path: root/sqlite3.go
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2012-03-12 14:20:55 +0900
committermattn <mattn.jp@gmail.com>2012-03-12 14:20:55 +0900
commit224815d665ab9f872c6bc0d9dad1101cc5ec6b1a (patch)
tree8506fd7628a40005c9536116857e7031d747e628 /sqlite3.go
parentdatabase/sql expects io.EOF after all rows have been Next'ed (diff)
downloadgolite-224815d665ab9f872c6bc0d9dad1101cc5ec6b1a.tar.gz
golite-224815d665ab9f872c6bc0d9dad1101cc5ec6b1a.tar.xz
merged #11
close #11
Diffstat (limited to 'sqlite3.go')
-rw-r--r--sqlite3.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/sqlite3.go b/sqlite3.go
index 02e7107..e3ce711 100644
--- a/sqlite3.go
+++ b/sqlite3.go
@@ -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 {