aboutsummaryrefslogtreecommitdiff
path: root/sqlite3.go
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2011-11-14 22:10:13 +0900
committermattn <mattn.jp@gmail.com>2011-11-14 22:10:13 +0900
commit7211b7212b6379501cf9beecac814c21223beda3 (patch)
treed6ec12a6a7368abd8a7a5a4a48fc16e526fb914e /sqlite3.go
parentclean (diff)
downloadgolite-7211b7212b6379501cf9beecac814c21223beda3.tar.gz
golite-7211b7212b6379501cf9beecac814c21223beda3.tar.xz
last inserted row ID, affected rows.
Diffstat (limited to 'sqlite3.go')
-rw-r--r--sqlite3.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/sqlite3.go b/sqlite3.go
index 58f93f6..25b646f 100644
--- a/sqlite3.go
+++ b/sqlite3.go
@@ -193,6 +193,18 @@ func (s *SQLiteStmt) Query(args []interface{}) (driver.Rows, error) {
return &SQLiteRows{s, int(C.sqlite3_column_count(s.s)), nil}, nil
}
+type SQLiteResult struct {
+ s *SQLiteStmt
+}
+
+func (r *SQLiteResult) LastInsertId() (int64, error) {
+ return int64(C.sqlite3_last_insert_rowid(r.s.s)), nil
+}
+
+func (r *SQLiteResult) RowsAffected() (int64, error) {
+ return int64(C.sqlite3_changes(r.s.s)), nil
+}
+
func (s *SQLiteStmt) Exec(args []interface{}) (driver.Result, error) {
if err := s.bind(args); err != nil {
return nil, err
@@ -201,7 +213,7 @@ func (s *SQLiteStmt) Exec(args []interface{}) (driver.Result, error) {
if rv != C.SQLITE_ROW && rv != C.SQLITE_OK && rv != C.SQLITE_DONE {
return nil, errors.New(C.GoString(C.sqlite3_errmsg(s.c.db)))
}
- return driver.DDLSuccess, nil
+ return &SQLiteResult {s}, nil
}
type SQLiteRows struct {