Browse Source

NullValues Test

pull/1/head
Georg Spar 1 year ago
parent
commit
aee328c627
  1. 25
      data.go
  2. 73
      wdmdb.go

25
data.go

@ -1,5 +1,7 @@
package main
import "database/sql"
// struct für das Einbinden von Items, die gekauft wurden
type Itemb struct {
Id uint64 `json:"id"`
@ -12,6 +14,16 @@ type Itemb struct {
Abmessungen Measure `json:"abmessungen"`
}
// struct für die Datenbank-Abfrage, analog zu Itemb
type DbIb struct {
Bezeichnung sql.NullString
Kurzbeschreibung sql.NullString
Groesse sql.NullString
Farbe sql.NullString
Material sql.NullString
Abmessungen DbMea
}
// struct für die Fotos, die im Filesystem abgelegt werden sollen
type Photos struct {
Id uint64 `json:"id"`
@ -40,6 +52,19 @@ type Measure struct {
TaillenumfangB float64 `json:"taillenumfangb"`
}
// struct für die Datenbank-Abfrage, analog zu Measure
type DbMea struct {
Kurz sql.NullString
Brust sql.NullFloat64
LaengeT sql.NullFloat64
Schulterbreite sql.NullFloat64
TaillenumfangT sql.NullFloat64
Hueftumfang sql.NullFloat64
Innennaht sql.NullFloat64
LaengeB sql.NullFloat64
TaillenumfangB sql.NullFloat64
}
// struct für die Erweiterung des Items für die Benutzung
// zusätzliche Felder für Bewertung und Favoriten
type ItemExt struct {

73
wdmdb.go

@ -348,18 +348,87 @@ func GetItemB(id uint64) (itemB Itemb, err error) {
}
log.Println("DB Verbindung hergestellt (ItemB SHOW)")
defer conn.Close()
var dbItemb DbIb
results, err := conn.Query("SELECT a.id, a.bezeichnung, a.kurzbeschreibung, a.groesse, a.farbe, a.material, b.id, b.brust, b.laenget, b.schulterbreite, b.taillenumfangt, b.hueftumfang, b.laengeb, b.taillenumfangb, b.kurz, c.id, c.bezeichnung FROM itemb a, measure b, typ c WHERE a.id=? AND b.id=a.abmessungenid AND a.typid=c.id", id)
if err != nil {
log.Fatal("Error while executing SELECt statement", err)
}
for results.Next() {
err = results.Scan(&itemB.Id, &itemB.Bezeichnung, &itemB.Kurzbeschreibung, &itemB.Groesse, &itemB.Farbe, &itemB.Material,
/* err = results.Scan(&itemB.Id, &itemB.Bezeichnung, &itemB.Kurzbeschreibung, &itemB.Groesse, &itemB.Farbe, &itemB.Material,
&itemB.Abmessungen.Id, &itemB.Abmessungen.Brust, &itemB.Abmessungen.LaengeT, &itemB.Abmessungen.Schulterbreite, &itemB.Abmessungen.TaillenumfangT, &itemB.Abmessungen.Hueftumfang,
&itemB.Abmessungen.LaengeB, &itemB.Abmessungen.TaillenumfangB, &itemB.Abmessungen.Kurz, &itemB.Type.Id, &itemB.Type.Bezeichnung)
*/
err = results.Scan(&itemB.Id, &dbItemb.Bezeichnung, &dbItemb.Kurzbeschreibung, &dbItemb.Groesse, &dbItemb.Farbe, &dbItemb.Material,
&itemB.Abmessungen.Id, &dbItemb.Abmessungen.Brust, &dbItemb.Abmessungen.LaengeT, &dbItemb.Abmessungen.Schulterbreite, &dbItemb.Abmessungen.TaillenumfangT, &dbItemb.Abmessungen.Hueftumfang,
&dbItemb.Abmessungen.LaengeB, &dbItemb.Abmessungen.TaillenumfangB, &dbItemb.Abmessungen.Kurz, &itemB.Type.Id, &itemB.Type.Bezeichnung)
if err != nil {
log.Fatal("Error: ", err)
}
if dbItemb.Bezeichnung.Valid {
itemB.Bezeichnung = dbItemb.Bezeichnung.String
} else {
itemB.Bezeichnung = ""
}
if dbItemb.Kurzbeschreibung.Valid {
itemB.Kurzbeschreibung = dbItemb.Kurzbeschreibung.String
} else {
itemB.Kurzbeschreibung = ""
}
if dbItemb.Groesse.Valid {
itemB.Groesse = dbItemb.Groesse.String
} else {
itemB.Groesse = ""
}
if dbItemb.Farbe.Valid {
itemB.Farbe = dbItemb.Farbe.String
} else {
itemB.Farbe = ""
}
if dbItemb.Material.Valid {
itemB.Material = dbItemb.Material.String
} else {
itemB.Material = ""
}
if dbItemb.Abmessungen.Brust.Valid {
itemB.Abmessungen.Brust = dbItemb.Abmessungen.Brust.Float64
} else {
itemB.Abmessungen.Brust = 0
}
if dbItemb.Abmessungen.LaengeT.Valid {
itemB.Abmessungen.LaengeT = dbItemb.Abmessungen.LaengeT.Float64
} else {
itemB.Abmessungen.LaengeT = 0
}
if dbItemb.Abmessungen.Schulterbreite.Valid {
itemB.Abmessungen.Schulterbreite = dbItemb.Abmessungen.Schulterbreite.Float64
} else {
itemB.Abmessungen.Schulterbreite = 0
}
if dbItemb.Abmessungen.TaillenumfangT.Valid {
itemB.Abmessungen.TaillenumfangT = dbItemb.Abmessungen.TaillenumfangT.Float64
} else {
itemB.Abmessungen.TaillenumfangT = 0
}
if dbItemb.Abmessungen.Hueftumfang.Valid {
itemB.Abmessungen.Hueftumfang = dbItemb.Abmessungen.Hueftumfang.Float64
} else {
itemB.Abmessungen.Hueftumfang = 0
}
if dbItemb.Abmessungen.LaengeB.Valid {
itemB.Abmessungen.LaengeB = dbItemb.Abmessungen.LaengeB.Float64
} else {
itemB.Abmessungen.LaengeB = 0
}
if dbItemb.Abmessungen.TaillenumfangB.Valid {
itemB.Abmessungen.TaillenumfangB = dbItemb.Abmessungen.TaillenumfangB.Float64
} else {
itemB.Abmessungen.TaillenumfangB = 0
}
if dbItemb.Abmessungen.Kurz.Valid {
itemB.Abmessungen.Kurz = dbItemb.Abmessungen.Kurz.String
} else {
itemB.Abmessungen.Kurz = ""
}
}
return itemB, err
}

Loading…
Cancel
Save