package main
import (
"database/sql"
"log"
_ "github.com/go-sql-driver/mysql"
)
var (
dbConnection = "wdmdbuser:wdmdbpass@tcp(ubodroid-2:3300)/wdmdb"
dbType = "mysql"
)
// Tool Funktionen
func CreateTyp ( typ Typ ) ( resTyp Typ , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "Verbindung hergestellt" )
log . Println ( "Name = " , typ . Bezeichnung )
defer conn . Close ( )
res , err := conn . Exec ( "INSERT INTO typ VALUES(?,?)" , typ . Id , typ . Bezeichnung )
if err != nil {
log . Println ( "Error while executing insert statement" , err )
}
lastId , err := res . LastInsertId ( )
typ . Id = uint ( lastId )
resTyp = typ
return resTyp , err
}
func DeleteTyp ( typId uint ) ( result , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (DELETE)" )
defer conn . Close ( )
_ , err = conn . Exec ( "DELETE FROM typ WHERE id = ?" , typId )
if err != nil {
log . Fatal ( "Error while executing DELETE statement" , err )
}
return result , err
}
func ShowTyp ( ) ( typArray [ ] Typ , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (SHOW)" )
defer conn . Close ( )
results , err := conn . Query ( "SELECT * FROM typ" )
if err != nil {
log . Fatal ( "Error while executing SELECt statement" , err )
}
var typ Typ
for results . Next ( ) {
err = results . Scan ( & typ . Id , & typ . Bezeichnung )
if err != nil {
log . Fatal ( "Error: " , err )
}
typArray = append ( typArray , typ )
}
return typArray , err
}
func GetTyp ( id uint ) ( typ Typ , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (SHOW)" )
defer conn . Close ( )
results , err := conn . Query ( "SELECT * FROM typ WHERE id=?" , id )
if err != nil {
log . Fatal ( "Error while executing SELECt statement" , err )
}
for results . Next ( ) {
err = results . Scan ( & typ . Id , & typ . Bezeichnung )
if err != nil {
log . Fatal ( "Error: " , err )
}
}
return typ , err
}
func UpdateTyp ( typ Typ ) ( resTyp Typ , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "Verbindung hergestellt (UPDATE)" )
log . Println ( "Name = " , typ . Bezeichnung )
defer conn . Close ( )
_ , err = conn . Exec ( "UPDATE typ SET bezeichnung=? WHERE id=?" , typ . Bezeichnung , typ . Id )
if err != nil {
log . Println ( "Error while executing insert statement" , err )
}
resTyp = typ
return resTyp , err
}
// Photo Funktionen
func CreatePhoto ( pho Photos ) ( resPhoto Photos , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "Verbindung hergestellt (Photo CREATE)" )
log . Println ( "Name = " , pho . Pfad )
defer conn . Close ( )
res , err := conn . Exec ( "INSERT INTO photo VALUES(?,?,?,?)" , pho . Id , pho . Pfad , pho . ItembId , pho . ItemextId )
if err != nil {
log . Println ( "Error while executing insert statement" , err )
}
lastId , err := res . LastInsertId ( )
pho . Id = uint64 ( lastId )
resPhoto = pho
return resPhoto , err
}
func DeletePhoto ( phoId uint64 ) ( result , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (Photo DELETE)" )
defer conn . Close ( )
_ , err = conn . Exec ( "DELETE FROM photo WHERE id = ?" , phoId )
if err != nil {
log . Fatal ( "Error while executing DELETE statement" , err )
}
return result , err
}
func ShowPhoto ( ) ( phoArray [ ] Photos , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (Photo SHOW)" )
defer conn . Close ( )
results , err := conn . Query ( "SELECT * FROM photos" )
if err != nil {
log . Fatal ( "Error while executing SELECt statement" , err )
}
var pho Photos
for results . Next ( ) {
err = results . Scan ( & pho . Id , & pho . Pfad , & pho . ItembId , & pho . ItemextId )
if err != nil {
log . Fatal ( "Error: " , err )
}
phoArray = append ( phoArray , pho )
}
return phoArray , err
}
func GetPhoto ( id uint64 ) ( pho Photos , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (Photo SHOW)" )
defer conn . Close ( )
results , err := conn . Query ( "SELECT * FROM typ WHERE id=?" , id )
if err != nil {
log . Fatal ( "Error while executing SELECt statement" , err )
}
for results . Next ( ) {
err = results . Scan ( & pho . Id , & pho . Pfad , & pho . ItembId , & pho . ItemextId )
if err != nil {
log . Fatal ( "Error: " , err )
}
}
return pho , err
}
func UpdatePhoto ( pho Photos ) ( resPho Photos , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "Verbindung hergestellt (Photo UPDATE)" )
log . Println ( "Name = " , pho . Pfad )
defer conn . Close ( )
_ , err = conn . Exec ( "UPDATE photos SET pfad=?, itembid=?, itemextid=? WHERE id=?" , pho . Pfad , pho . ItembId , pho . ItemextId , pho . Id )
if err != nil {
log . Println ( "Error while executing insert statement" , err )
}
resPho = pho
return resPho , err
}
// Measure Funktionen
func CreateMeasure ( mea Measure ) ( resMea Measure , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "Verbindung hergestellt (Measure INSERT)" )
log . Println ( "Name = " , mea . Kurz )
defer conn . Close ( )
res , err := conn . Exec ( "INSERT INTO measure VALUES(?,?,?,?,?,?,?,?,?,?)" , mea . Id , mea . Brust , mea . LaengeT , mea . Schulterbreite , mea . TaillenumfangT , mea . Hueftumfang , mea . Innennaht , mea . LaengeB , mea . TaillenumfangT , mea . Kurz )
if err != nil {
log . Println ( "Error while executing insert statement" , err )
}
lastId , err := res . LastInsertId ( )
mea . Id = uint64 ( lastId )
resMea = mea
return resMea , err
}
func DeleteMeasure ( meaId uint64 ) ( result , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (Measure DELETE)" )
defer conn . Close ( )
_ , err = conn . Exec ( "DELETE FROM measure WHERE id = ?" , meaId )
if err != nil {
log . Fatal ( "Error while executing DELETE statement" , err )
}
return result , err
}
func ShowMeasure ( ) ( meaArray [ ] Measure , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (Measure SHOW)" )
defer conn . Close ( )
results , err := conn . Query ( "SELECT * FROM measure" )
if err != nil {
log . Fatal ( "Error while executing SELECt statement" , err )
}
var mea Measure
for results . Next ( ) {
err = results . Scan ( & mea . Id , & mea . Brust , & mea . LaengeT , & mea . Schulterbreite , & mea . TaillenumfangT , & mea . Hueftumfang , & mea . Innennaht , & mea . LaengeB , & mea . TaillenumfangT , & mea . Kurz )
if err != nil {
log . Fatal ( "Error: " , err )
}
meaArray = append ( meaArray , mea )
}
return meaArray , err
}
func GetMeasure ( id uint64 ) ( mea Measure , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (Measure SHOW)" )
defer conn . Close ( )
results , err := conn . Query ( "SELECT * FROM mea WHERE id=?" , id )
if err != nil {
log . Fatal ( "Error while executing SELECt statement" , err )
}
for results . Next ( ) {
err = results . Scan ( & mea . Id , & mea . Brust , & mea . LaengeT , & mea . Schulterbreite , & mea . TaillenumfangT , & mea . Hueftumfang , & mea . Innennaht , & mea . LaengeB , & mea . TaillenumfangT , & mea . Kurz )
if err != nil {
log . Fatal ( "Error: " , err )
}
}
return mea , err
}
func UpdateMeasure ( mea Measure ) ( resMea Measure , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "Verbindung hergestellt (Measure UPDATE)" )
log . Println ( "Name = " , mea . Kurz )
defer conn . Close ( )
_ , err = conn . Exec ( "UPDATE measure SET brust=?, laenget=?, schulterbreite=?, taillenumfangt=? hueftumfang=?, innennaht=?, laengeb=?, taillenumfangb=?, kurz=? WHERE id=?" ,
mea . Brust , mea . LaengeT , mea . Schulterbreite , mea . TaillenumfangT , mea . Hueftumfang , mea . Innennaht , mea . LaengeB , mea . TaillenumfangT , mea . Kurz , mea . Id )
if err != nil {
log . Println ( "Error while executing insert statement" , err )
}
resMea = mea
return resMea , err
}
// ItemB Funktionen
func CreateItemB ( itemB Itemb ) ( resItemb Itemb , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "Verbindung hergestellt (ItemB Create)" )
log . Println ( "Name = " , itemB . Bezeichnung )
defer conn . Close ( )
res , err := conn . Exec ( "INSERT INTO itemb VALUES(?,?,?,?,?,?,?,?)" , itemB . Id , itemB . Bezeichnung , itemB . Kurzbeschreibung , itemB . Groesse , itemB . Farbe , itemB . Type . Id , itemB . Material , itemB . Abmessungen . Id )
if err != nil {
log . Println ( "Error while executing insert statement" , err )
}
lastId , err := res . LastInsertId ( )
itemB . Id = uint64 ( lastId )
resItemb = itemB
return resItemb , err
}
func DeleteItemB ( itemBId uint64 ) ( result , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (ItemB DELETE)" )
defer conn . Close ( )
_ , err = conn . Exec ( "DELETE FROM itemb WHERE id = ?" , itemBId )
if err != nil {
log . Fatal ( "Error while executing DELETE statement" , err )
}
return result , err
}
func ShowItemB ( ) ( itemBArray [ ] Itemb , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (ItemB SHOW)" )
defer conn . Close ( )
results , err := conn . Query ( "SELECT * FROM itemb" )
if err != nil {
log . Fatal ( "Error while executing SELECt statement" , err )
}
var itemB Itemb
for results . Next ( ) {
err = results . Scan ( & itemB . Id , & itemB . Bezeichnung , & itemB . Kurzbeschreibung , & itemB . Groesse , & itemB . Farbe , & itemB . Type . Id , & itemB . Material , & itemB . Abmessungen . Id )
if err != nil {
log . Fatal ( "Error: " , err )
}
itemBArray = append ( itemBArray , itemB )
}
return itemBArray , err
}
func GetItemB ( id uint64 ) ( itemB Itemb , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "DB Verbindung hergestellt (ItemB SHOW)" )
defer conn . Close ( )
results , err := conn . Query ( "SELECT a.*, b.* FROM itemb a, measure b WHERE a.id=? AND b.id=a.abmessungenid" , 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 . Type . Id , & 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 )
if err != nil {
log . Fatal ( "Error: " , err )
}
}
return itemB , err
}
func UpdateItemB ( itemB Itemb ) ( resItemb Itemb , err error ) {
conn , err := sql . Open ( dbType , dbConnection )
if err != nil {
log . Println ( "Error while connecting DB: " , err )
}
log . Println ( "Verbindung hergestellt (ItemB UPDATE)" )
log . Println ( "Name = " , itemB . Bezeichnung )
defer conn . Close ( )
_ , err = conn . Exec ( "UPDATE itemb SET bezeichnung=?, kurzbeschreibung=?, groesse=?, farbe=?, typid=?, material=?, abmessungenid=? WHERE id=?" , itemB . Bezeichnung , itemB . Kurzbeschreibung , itemB . Groesse , itemB . Farbe , itemB . TypId , itemB . Material , itemB . AbmessungenId , itemB . Id )
if err != nil {
log . Println ( "Error while executing insert statement" , err )
}
resItemb = itemB
return resItemb , err
}