100-go-mistakes/10-standard-lib/78-sql/null-values/main.go
2021-12-27 15:56:17 +01:00

66 lines
1 KiB
Go

package main
import "database/sql"
func listing1(db *sql.DB, id string) error {
rows, err := db.Query("SELECT DEP, AGE FROM EMP WHERE ID = ?", id)
if err != nil {
return err
}
// Defer closing rows
var (
department string
age int
)
for rows.Next() {
err := rows.Scan(&department, &age)
if err != nil {
return err
}
// ...
}
return nil
}
func listing2(db *sql.DB, id string) error {
rows, err := db.Query("SELECT DEP, AGE FROM EMP WHERE ID = ?", id)
if err != nil {
return err
}
// Defer closing rows
var (
department *string
age int
)
for rows.Next() {
err := rows.Scan(&department, &age)
if err != nil {
return err
}
// ...
}
return nil
}
func listing3(db *sql.DB, id string) error {
rows, err := db.Query("SELECT DEP, AGE FROM EMP WHERE ID = ?", id)
if err != nil {
return err
}
// Defer closing rows
var (
department sql.NullString
age int
)
for rows.Next() {
err := rows.Scan(&department, &age)
if err != nil {
return err
}
// ...
}
return nil
}