Commit 936c017d authored by gwenn's avatar gwenn

Describe two idioms for handling errors while evaluating statement.

parent 4f347f1e
......@@ -459,6 +459,19 @@ func (s *Stmt) Bind(args ...interface{}) os.Error {
return nil
}
// With custom error handling:
// var ok bool
// var err os.Error
// for ok, err = s.Next(); ok; ok, err = s.Next() {
// cs.Scan(&fnum, &inum, &sstr)
// }
// if err != nil {
// ...
// }
// With panic on error:
// for Must(s.Next()) {
// cs.Scan(&fnum, &inum, &sstr)
// }
// Calls sqlite3_step
// http://sqlite.org/c3ref/step.html
func (s *Stmt) Next() (bool, os.Error) {
......
......@@ -4,7 +4,6 @@ import (
"fmt"
"strings"
"testing"
"os"
)
func trace(d interface{}, t string) {
......@@ -471,14 +470,9 @@ func BenchmarkScan(b *testing.B) {
var inum int64
var sstr string
var ok bool
var err os.Error
for ok, err = cs.Next(); ok; ok, err = cs.Next() {
for Must(cs.Next()) {
cs.Scan(&fnum, &inum, &sstr)
}
if err != nil {
panic(err)
}
cs.Finalize()
}
}
......@@ -506,14 +500,9 @@ func BenchmarkNamedScan(b *testing.B) {
var inum int64
var sstr string
var ok bool
var err os.Error
for ok, err = cs.Next(); ok; ok, err = cs.Next() {
for Must(cs.Next()) {
cs.NamedScan("float_num", &fnum, "int_num", &inum, "a_string", &sstr)
}
if err != nil {
panic(err)
}
cs.Finalize()
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment