Défi :
De nombreuses tâches de programmation nécessitent l'extraction de lignes données des tables de base de données dans un format structuré. Dans Go, le package base de données/sql fournit des instances Rows pour parcourir les lignes de la table. Cependant, la méthode Scan de Rows s'attend à ce que les pointeurs ciblent des variables de types connus, ce qui peut être difficile lorsque le nombre et les types de colonnes sont inconnus à l'avance.
Solution :
Pour lire les colonnes d'une instance Rows dans une []string, vous pouvez utiliser l'approche suivante :
Exemple :
package main import ( "fmt" "io" "database/sql" ) func dumpTable(rows *sql.Rows, out io.Writer) error { colNames, err := rows.Columns() if err != nil { return err } writer := csv.NewWriter(out) writer.Comma = '\t' readCols := make([]interface{}, len(colNames)) writeCols := make([]string, len(colNames)) for i, _ := range writeCols { readCols[i] = &writeCols[i] } for rows.Next() { err := rows.Scan(readCols...) if err != nil { return err } writer.Write(writeCols) } if err = rows.Err(); err != nil { return err } writer.Flush() return nil }
Ce code vous permet de lire les colonnes d'une instance Rows et de les convertir en une []chaîne pour un traitement ultérieur .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!