170 похожих чатов

Привет, насколько такой код корректный и нормальный? func (d *DB) queryBool(query

string, args ...any) (result bool, err error) {
res, err := d.db.Query(query, args...)
if err != nil {
return
}
err = res.Scan(&result)
return
}

19 ответов

30 просмотров

QueryRow[Context]

ну и я бы еще явно ошибку после скана проверял

Maxim Biryukov
QueryRow[Context]

QueryContext(ctx, ...) наверное имел в виду

Rostislav Teryaev
QueryContext(ctx, ...) наверное имел в виду

Там же один результат возвращается я имел в виду QueryRow или QueryRowContext. И rows тогда не надо закрывать, в первоначальном виде этого нет почему то

не хватает проверок на NotFound, UniqueViolation и соотвественно отдавать надо не pg ошибки, а свои из DAL, чтобы уже на слое с БЛ проверять эти ошибки и иметь возможность написать логику на них.

знаю что она кастрированная, но там вроде есть ошибки

🦊 Fox 🌸-🌸 Автор вопроса
Artur Karapetov
знаю что она кастрированная, но там вроде есть оши...

там так-то ошибок никаких и не может возникнуть, кроме как если диск посыпется, допустим у меня выше этой функции просто стоит паник, если err != nil ибо если вылетит какая то ошибка = дальше оно уже работу никак не может продолжить

🦊 Fox 🌸-🌸 Автор вопроса
Rostislav Teryaev
QueryContext(ctx, ...) наверное имел в виду

а какой тут толк мне от контекста? // rows.Close() я так понимаю в таком случае нужно добавить обязательно?

🦊 Fox 🌸-🌸 Автор вопроса
🦊 Fox 🌸 🌸
а какой тут толк мне от контекста? // rows.Close()...

https://go.dev/doc/database/querying а тут Rows не закрывается нигде, кроме последнего примера🤔

🦊 Fox 🌸 🌸
https://go.dev/doc/database/querying а тут Rows не...

func albumsByArtist(artist string) ([]Album, error) { rows, err := db.Query("SELECT * FROM album WHERE artist = ?", artist) if err != nil { return nil, err } defer rows.Close()

🦊 Fox 🌸 🌸
https://go.dev/doc/database/querying а тут Rows не...

там queryROW. его не нужно закрывать, его я и предложил.

🦊 Fox 🌸 🌸
а какой тут толк мне от контекста? // rows.Close()...

контекст - стандартный способ отменить что то, напрмер io прекратить которое уже не нужно это лишь предложение, иметь контекст всегда приятней чем его не иметь

🦊 Fox 🌸-🌸 Автор вопроса
🦊 Fox 🌸 🌸
A

тоесть, вот так? func (d *DB) queryBool(query string, args ...any) (result bool, err error) { res := d.db.QueryRow(query, args...) err = res.Scan(&result) return } или лучше вот так? func (d *DB) queryBool(query string, args ...any) (bool, error) { var result bool res := d.db.QueryRow(query, args...) err := res.Scan(&result) return result, err }

🦊 Fox 🌸 🌸
тоесть, вот так? func (d *DB) queryBool(query str...

мне первый больше нравится, но можно еще 1 и 2 строки в одной написать func (d *DB) queryBool(query string, args ...any) (result bool, err error) { err = d.db.QueryRow(query, args...).Scan(&result) return }

🦊 Fox 🌸 🌸
а какой тут толк мне от контекста? // rows.Close()...

контекст тут нужен для выставления таймаута. Чтобы приложение навечно не зависло на этой операции

🦊 Fox 🌸 🌸
напомню, что у меня sqlite

ну если хочется можно не писать, дело хозяйское) Но хуже точно не будет

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта