Код:
package main
import (
"context"
"database/sql"
"fmt"
"log"
_ "github.com/denisenkom/go-mssqldb"
)
var db *sql.DB
var server = "127.0.0.8"
var port = 1433
var user = "sa"
var password = "ПАРОЛЬ"
var database = "lin2world"
func main() {
connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
server, user, password, port, database)
var err error
db, err = sql.Open("sqlserver", connString)
if err != nil {
log.Fatal("Error creating connection pool: ", err.Error())
}
ctx := context.Background()
err = db.PingContext(ctx)
if err != nil {
log.Fatal(err.Error())
}
fmt.Printf("Connected!\n")
count, err := ReadEmployees()
if err != nil {
log.Fatal("Error reading Employees: ", err.Error())
}
fmt.Printf("Read %d row(s) successfully.\n", count)
}
func ReadEmployees() (int, error) {
ctx := context.Background()
err := db.PingContext(ctx)
if err != nil {
return -1, err
}
tsql := fmt.Sprintf("SELECT TOP 20 char_name, Lev, duel, PK, use_time, class FROM user_data ORDER BY duel DESC;")
rows, err := db.QueryContext(ctx, tsql)
if err != nil {
return -1, err
}
defer rows.Close()
var count int
// Iterate through the result set.
for rows.Next() {
var char_name, Lev, duel, PK, use_time string
var class int64
// Get values from row.
err := rows.Scan(&char_name, &Lev, &duel, &PK, &use_time, &class)
if err != nil {
return -1, err
}
////////////////////////////
var x [126]string
x[0] = "fighter"
x[1] = "warrior"
x[2] = "gladiator"
x[3] = "warlord"
x[4] = "knight"
x[5] = "paladin"
x[6] = "dark avenger"
x[7] = "rogue"
x[8] = "treasure hunter"
x[9] = "hawkeye"
x[10] = "mage"
x[11] = "wizard"
x[12] = "sorcerer"
x[13] = "necromancer"
x[14] = "warlock"
x[15] = "cleric"
x[16] = "bishop"
x[17] = "prophet"
x[18] = "elven fighter"
x[19] = "elven knight"
x[20] = "temple knight"
x[21] = "swordsinger"
x[22] = "elven scout"
x[23] = "plains walker"
x[24] = "silver ranger"
x[25] = "elven mage"
x[26] = "elven wizard"
x[27] = "spellsinger"
x[28] = "elemental summoner"
x[29] = "oracle"
x[30] = "elder"
x[31] = "dark fighter"
x[32] = "palus knight"
x[33] = "shillien knight"
x[34] = "bladedancer"
x[35] = "assassin"
x[36] = "abyss walker"
x[37] = "phantom ranger"
x[38] = "dark mage"
x[39] = "dark wizard"
x[40] = "spellhowler"
x[41] = "phantom summoner"
x[42] = "shillien oracle"
x[43] = "shillien elder"
x[44] = "orc fighter"
x[45] = "orc raider"
x[46] = "destroyer"
x[47] = "orc monk"
x[48] = "tyrant"
x[49] = "orc mage"
x[50] = "orc shaman"
x[51] = "overlord"
x[52] = "warcryer"
x[53] = "dwarven fighter"
x[54] = "scavenger"
x[55] = "bounty hunter"
x[56] = "artisan"
x[57] = "warsmith"
x[88] = "duelist"
x[89] = "dreadnought"
x[90] = "phoenix knight"
x[91] = "hell knight"
x[92] = "sagittarius"
x[93] = "adventurer"
x[94] = "archmage"
x[95] = "soultaker"
x[96] = "arcana lord"
x[97] = "cardinal"
x[98] = "hierophant"
x[99] = "evas templar"
x[100] = "sword muse"
x[101] = "wind rider"
x[102] = "moonlight sentinel"
x[103] = "mystic muse"
x[104] = "elemental master"
x[105] = "evas saint"
x[106] = "shillien templar"
x[107] = "spectral dancer"
x[108] = "ghost hunter"
x[109] = "ghost sentinel"
x[110] = "storm screamer"
x[111] = "spectral master"
x[112] = "shillien saint"
x[113] = "titan"
x[114] = "grand khavatari"
x[115] = "dominator"
x[116] = "doomcryer"
x[117] = "fortune seeker"
x[118] = "maestro"
x[119] = "maestro"
x[120] = "Неизвестный класс"
x[121] = "Неизвестный класс"
x[122] = "Неизвестный класс"
x[123] = "Неизвестный класс"
x[124] = "Неизвестный класс"
x[125] = "Неизвестный класс"
///////////////////////////
var id int64 = class
fmt.Printf("Имя Игрока: %s, Уровень: %s, ПВП: %s, ПК: %s, Время в игре: %s, Класс: %v, \n", char_name, Lev, duel, PK, use_time, x[id])
count++
}
return count, nil
}