Skip to content

Instantly share code, notes, and snippets.

@JamsMendez
Created May 28, 2018 22:44
Show Gist options
  • Save JamsMendez/48695a61945d4909b251c83194941942 to your computer and use it in GitHub Desktop.
Save JamsMendez/48695a61945d4909b251c83194941942 to your computer and use it in GitHub Desktop.
record := recordDB.Model{
UserDB: UserRecords,
PwdDB: PwdRecords,
NameDB: NameRecords,
Host: HostRecords,
Port: PortRecords,
Debug: true,
}
// Abre conexión de MYSQL
err = record.Connect()
if err != nil {
return
}
defer func() {
// Cierra conexion de MYSQL
record.Disconnect()
}()
cResults := make(chan resultRecord)
nDates := len(dates)
for i := 0; i < nDates; i++ {
go func(indexIn int) {
d := dates[indexIn]
start := d.Glt.Format(dateTimeFormat)
final := d.Lt.Format(dateTimeFormat)
records := []Record{}
values, err := record.Find(table, start, final, 1)
if err != nil {
fmt.Println("record.Find: ", err)
}
records = append(records, values...)
result := resultRecord{
Index: indexIn,
Records: records,
}
cResults <- result
}(i)
}
for result := range cResults {
// Recibiendo los results ...
}
// Contenido del metodo Find ...
func (m *Model) Find(table, start, final string, num int) ([]Record, error) {
var msgErr error
records := []Record{}
var err error
var rows *sql.Rows
query := fmt.Sprintf("select * from %s WHERE t >= ? AND t < ? LIMIT ?", table)
rows, err = m.DB.Query(query, start, final, num)
if err != nil {
if m.Debug {
fmt.Println(err)
}
msgErr = errors.New("....")
return records, msgErr
}
defer func(r *sql.Rows) {
err := r.Close()
if err != nil {
if m.Debug {
fmt.Println("rows.Error: ", err)
}
}
}(rows)
for rows.Next() {
record := Record{}
fields := []interface{}{
// ... N campos del tabla
}
err = rows.Scan(fields...)
if err == nil {
records = append(records, record)
} else {
if m.Debug {
fmt.Println(err)
}
}
}
return records, msgErr
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment