Anonymous
они нигде заранее не сохранены
Алексей
трям.... понял... не самый веселый способ.... :(
Благоадрю.
Алексей
Aleksandr
Aleksandr
Алексей
мне по сути надо сделать следющее, если записи есть, то пробежаться по ним, если нету - выдать ошибку
Kirill
а где он такую ошибку возвращает?
ErrNoRows is returned by Scan when QueryRow doesn't return a row. In such a case, QueryRow returns a placeholder *Row value that defers this error until a Scan.
Aleksandr
Алексей
Kirill
Не надо гуглить, все есть в документации https://golang.org/pkg/database/sql/#Row.Scan
Алексей
Anonymous
зачем тогда бежать по всем записям и их считать если достаточно знать, что их > 0?
if rows.Next() {
// записи есть
} else {
// записей нет
}
но и sql.ErrNoRows тоже выход
Aleksandr
Anonymous
если записей нет, он просто вернет false
Aleksandr
Anonymous
ну если их надо обработать то
flag := false
for rows.Next() {
flag := true
// обработка
}
if !flag {
// не было строк
}
Aleksandr
Anonymous
ну я ведь сказал что это тоже вариант )
Michael
бдыщь http://v8.1c.ru/o7/201312rest/index.htm
Maxim
а данные с нее надо
Maxim
то есть запросы на 100 строк текста есть, и все работает
Maxim
но хочется это чтобы в json теперь уходило
Maxim
это не я придумал :) честно!
An
Народ кто юзает gogland джетбрайнс? подскажите почему оно подчеркивает структуры если они называются как пакет например my.My "Reports names starts with package name. "? а в стандартной библиотеке есть time.Time
Alexander
а на time.Time не ругается? 🙂
r00t b0x
An
не ругается(но может оно его даже чекает) в настройках инспектора есть ссылка на https://github.com/golang/go/wiki/CodeReviewComments#package-names
An
может зарепортить им багу или что-то я понимаю - такая очевидная же
Alexander
Попробуй создать пакет и внутри него структуру такую же, как и имя
An
я ж написал выше что создал my.My
Sergius Ofitserov
Alexander
сорь, склеилось в глазах, не увидел. Ну, тогда зарепорти
An
Aleksandr
Sergius Ofitserov
Не бред - шутка
An
кароч обновил на последний билд(24 октября, а у меня был наверное какой-то летний) и все норм
Sergius Ofitserov
Голанд ставил недели три назад - не замечал подобных багов
Sergius Ofitserov
До этогл атом хипстерский использовал, имакс
Sergius Ofitserov
Оставлю здесь. Возможно кому-то пригодится.
Sergius Ofitserov
30 книг для освоения языка программирования Go
#go #book
https://proglib.io/p/30-golang-books/
An
что оставишь?
Sergius Ofitserov
30 книг
An
у меня веб-телеграм глючит(
Алексей
Уважаемые знатоки, что я делаю не так :)
rows, asd := PostgresDB.Query(selectQuery)
for rows.Next() {
fmt.Println("In rows.Next ...")
...
}
fmt.Println(asd)
fmt.Println(rows.Err())
log:
<nil>
<nil>
Если в запросе есть хотя бы одна строка, то мы нормально проваливаемся и обрабатывае в rows.Next()
Это все к ренее советамой мне sql.ErrNoRows... ошибки просто нет, но мы и не проваливаемся в Next()
Aleksandr
Алексей
а зачем её проверять если она nil
Алексей
или я чего-то не догоняю
Aleksandr
nil она если нет ошибки)
Aleksandr
ты как ошибьки проверяешь в go?)
Алексей
ну так её и нет
Алексей
типа того - if err == sql.ErrNoRows ?
Алексей
у меня до сюда не доходит так как выше стоит проверка на if err != nil
Aleksandr
Aleksandr
тебе про это и говорю
Aleksandr
очевидно что за тобой надо проверить правильность синтаксиса
Алексей
так... может ясвоим питонячим мозгом чего-то не понимаю...
я вывожу переменные в которые записываются ошибки, в них ничего нет nil - зачем мне их проверять на sql.ErrNoRows ?
Aleksandr
rows, _ := PostgresDB.Query(selectQuery)
Aleksandr
вот ты делаешь запрос и он тебе возвращает строки и ошибку. а ошибку ты и не проверяешь
Алексей
Алексей
вот лог
<nil>
<nil>
Aleksandr
ты проверяешь теперь на отсутствие строк, но не проверяешь на другую ошибку
Алексей
на какую ?
Алексей
у тебя есть предположение что упало что-то другое?
Aleksandr
1. делаем запрос
2. проверяем специфическую ошибку
3. проверяем остальные
4. перебираем строки
а) проверяем на ошибки при скане
5. проверяем на ошибку фетча строк
Aleksandr
rows, asd := PostgresDB.Query(selectQuery)
if asd == sql.ErrNoRows {
fmt.Println("Не найдено записей!")
} else {
fmt.Println(asd)
}
asd в твоем случае может быть не только nil или sql.ErrNoRows
Алексей
так, ок, такой вопрос, что значит nil в переменоой куда должна вернуться ошибка?
Zloy-Dobry
очевидно?)
https://play.golang.org/p/qiqNG2Bi12
Aleksandr
ее отсутствие
Алексей
он значит что ошибок не найдено?
Aleksandr
Алексей
ну так ведь это значит что, на что бы я не проверил, ошибок нет
Алексей
конкретно сейчас
Алексей
но запрос вернул мне 0 строк
Алексей
меня в данном контексте не интересуют другие ошибки и проверка на них, меня интересует как узнать что нет срок
Aleksandr
https://play.golang.org/p/qiqNG2Bi12
t, err := time.Parse(time.RFC3339, s)
if err != nil {
log.Print(err)
t, err = time.Parse("2006-01-02 15:04:05", s)
}
ну ты парсишь в другой формат. замени time.RFC3339 на свой формат json