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 } } 

the stmt.exec documentation says:

no rows returned.

to return data, use query instead.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -