Catch missing arguments for Query()

Also improved error message on Exec() for consistency.
This commit is contained in:
Josiah Kiehl (formerly @bluepojo) 2014-11-29 14:08:02 -08:00
parent d10e2c8f62
commit 3dc340b45f
1 changed files with 5 additions and 1 deletions

View File

@ -60,6 +60,7 @@ import (
"database/sql" "database/sql"
"database/sql/driver" "database/sql/driver"
"errors" "errors"
"fmt"
"io" "io"
"runtime" "runtime"
"strings" "strings"
@ -174,7 +175,7 @@ func (c *SQLiteConn) Exec(query string, args []driver.Value) (driver.Result, err
if s.(*SQLiteStmt).s != nil { if s.(*SQLiteStmt).s != nil {
na := s.NumInput() na := s.NumInput()
if len(args) < na { if len(args) < na {
return nil, errors.New("args is not enough to execute query") return nil, fmt.Errorf("Not enough args to execute query. Expected %d, got %d.", na, len(args))
} }
res, err = s.Exec(args[:na]) res, err = s.Exec(args[:na])
if err != nil && err != driver.ErrSkip { if err != nil && err != driver.ErrSkip {
@ -201,6 +202,9 @@ func (c *SQLiteConn) Query(query string, args []driver.Value) (driver.Rows, erro
} }
s.(*SQLiteStmt).cls = true s.(*SQLiteStmt).cls = true
na := s.NumInput() na := s.NumInput()
if len(args) < na {
return nil, fmt.Errorf("Not enough args to execute query. Expected %d, got %d.", na, len(args))
}
rows, err := s.Query(args[:na]) rows, err := s.Query(args[:na])
if err != nil && err != driver.ErrSkip { if err != nil && err != driver.ErrSkip {
s.Close() s.Close()