2017-09-16 1 views
0

Ich möchte alle Felder der Zeile abrufen und dann in HTML rendern. Ich weiß, wie es zu tun und hier ein Code für eine Zeile mit drei Feldern:Dynamisch generieren Strukturfelder von SQL QueryRow Ergebnis

type View struct { 
    Id   int 
    Name_and_requisits string 
    Reg_Date string 
} 
func getViewById(id int) (*View, error){ 
    var vie View 
    row := db.QueryRow("select id, name_and_requisits, reg_date from book where id = ?;", id) 
    err := row.Scan(&vie.Id, &vie.Name_and_requisites, &vie.Reg_Date) 
    if err != nil { 
     return nil, err 
    } 

    return &vie, nil 
} 

Aber in meiner Tabelle eine Zeile enthält etwa 20 Spalten und ich brauche sie alle mit ihrem Namen aber ich mag nicht schaffen eine nested hardcoded struct. Ich habe eine Idee wie struct Felder dynamisch generieren, aus Namen von Spalten, und dann row.Scan darauf verwenden. Irgendwelche Ideen? Vielleicht ist Karte für diese Situation besser?

Danke!

+1

https://kylewbanks.com/blog/query-result-to-map-in-golang –

+0

@StephaneMartin danke, Ihre Antwort hat mir geholfen! – rocco

Antwort

4

struct Felder dynamisch

https://golang.org/pkg/reflect/#StructOf

erzeugen Aber bitte: Tu es nicht.

+2

"Tu es nicht". Hah, kein Scherz. Die Leute kommen immer aus Python und wollen verrückt komische Flexibilität, ohne zu wissen, dass Go eine statisch typisierte Sprache ist, und dass es eine gute Sache ist. – RayfenWindspear

+0

Ihre Anleitung verdient eine +1 –

+0

@RayfenWindspear Sie Recht, Python ist mein Hintergrund :) Und weniger Flexibilität ist eine gute Sache in Go, ich stimme zu. Es ist wie verrückte Flexibilität von Joomla mit verrückten Hängen vs selbst-maded CMS – rocco