sqlite - go programming: sqlite_master returns EOF using sqlite3 package -
i trying check if table exists after table creation "select name sqlite_master type='table' , name='testtable';"
returns nothing (eof
). doing wrong?
sqlite3 package taken http://code.google.com/p/go-sqlite/source/browse/#hg%2fgo1%2fsqlite3 go version: 1.2.1
got:
hello, world fileexists(dbname) returned: false database ok creating testtable... success! inserting something... checking testtable... failed scan variable, error: eof
expected:
hello, world fileexists(dbname) returned: false database ok creating testtable... success! inserting something... checking testtable... table detected
code:
package main import "os" import "fmt" import "time" import "code.google.com/p/go-sqlite/go1/sqlite3" func main() { dbname := "sqlite.db" defer time.sleep(5000 * time.millisecond) fmt.printf("hello, world\n") os.remove(dbname) fe := fileexists(dbname) fmt.printf("fileexists(dbname) returned: %t\n", fe) db, err := sqlite3.open(dbname) defer db.close() if err != nil { fmt.printf("failed open database, error: " + err.error() + "\n") return } fmt.printf("database ok\n") if fe != true { fmt.printf("creating testtable...\n") err = db.exec("create table testtable (id integer primary key autoincrement, text varchar(200));") if err != nil { fmt.printf("error: " + err.error() + "\n") return } else { fmt.printf("success!\n") } fmt.printf("inserting something...\n") insertsql := `insert testtable(text) values("this random text test it");` err = db.exec(insertsql) if err != nil { fmt.printf("error while inserting: " + err.error() + "\n") return } fmt.printf("checking testtable...\n") checktable, err := db.prepare("select name sqlite_master type='table' , name='testtable';") err = checktable.exec() if err != nil { fmt.printf("failed check table, error: " + err.error() + "\n") return } var tablename string //same result removing '//' //requeststatus := checktable.next() err = checktable.scan(&tablename) if err != nil { fmt.printf("failed scan variable, error: " + err.error() + "\n") return } if tablename != "testtable" { fmt.printf("no table detected\n") } else { fmt.printf("table detected\n") } } } func fileexists(fn string) bool { if _, err := os.stat(fn); err == nil { return true } else { return false } }
Comments
Post a Comment