forked from mirror/go-sqlite3
Implements Queryer
This commit is contained in:
parent
132e6e9898
commit
3f20cb1697
25
sqlite3.go
25
sqlite3.go
|
@ -137,7 +137,6 @@ func (c *SQLiteConn) AutoCommit() bool {
|
||||||
// Implements Execer
|
// Implements Execer
|
||||||
func (c *SQLiteConn) Exec(query string, args []driver.Value) (driver.Result, error) {
|
func (c *SQLiteConn) Exec(query string, args []driver.Value) (driver.Result, error) {
|
||||||
for {
|
for {
|
||||||
println(query)
|
|
||||||
ds, err := c.Prepare(query)
|
ds, err := c.Prepare(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
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 {
|
func (c *SQLiteConn) exec(cmd string) error {
|
||||||
pcmd := C.CString(cmd)
|
pcmd := C.CString(cmd)
|
||||||
defer C.free(unsafe.Pointer(pcmd))
|
defer C.free(unsafe.Pointer(pcmd))
|
||||||
|
|
Loading…
Reference in New Issue