aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2013-09-09 10:56:45 +0900
committermattn <mattn.jp@gmail.com>2013-09-09 10:56:45 +0900
commit3f20cb1697bc033aa1eca5d9f0225814e8696006 (patch)
tree8e88908022070e25958bf1a55b02d758f67d4f8a
parentRemove debug message (diff)
downloadgolite-3f20cb1697bc033aa1eca5d9f0225814e8696006.tar.gz
golite-3f20cb1697bc033aa1eca5d9f0225814e8696006.tar.xz
Implements Queryer
-rw-r--r--sqlite3.go25
1 files changed, 24 insertions, 1 deletions
diff --git a/sqlite3.go b/sqlite3.go
index d645af1..1a93298 100644
--- a/sqlite3.go
+++ b/sqlite3.go
@@ -137,7 +137,6 @@ func (c *SQLiteConn) AutoCommit() bool {
// Implements Execer
func (c *SQLiteConn) Exec(query string, args []driver.Value) (driver.Result, error) {
for {
- println(query)
ds, err := c.Prepare(query)
if err != nil {
return nil, err
@@ -158,6 +157,30 @@ func (c *SQLiteConn) Exec(query string, args []driver.Value) (driver.Result, err
}
}
+// Implements Queryer
+func (c *SQLiteConn) Query(query string, args []driver.Value) (driver.Rows, error) {
+ for {
+ ds, err := c.Prepare(query)
+ if err != nil {
+ return nil, err
+ }
+ s := ds.(*SQLiteStmt)
+ na := s.NumInput()
+ rows, err := s.Query(args[:na])
+ args = args[na:]
+ s.Close()
+ if err != nil {
+ return nil, err
+ }
+ if s.t == "" {
+ return rows, nil
+ }
+ rows.Close()
+ s.Close()
+ query = s.t
+ }
+}
+
func (c *SQLiteConn) exec(cmd string) error {
pcmd := C.CString(cmd)
defer C.free(unsafe.Pointer(pcmd))