Size: a a a

2021 May 21

KF

Konstantin Firsov in dlang.ru
А кто работал с биндингами на etc.c.sqlite3, у меня select... where id in(1,2) обрабатывается через while и sqlite3_step, но на выходе получается только результат по одному id, второй игнорируется, хотя обычные запросы работают нормально. Это какой-то частный случай или же все таки у меня где-то баг? Вот за такие сюрпризы и не люблю велосипеды.
источник

KF

Konstantin Firsov in dlang.ru
А все, нашел, типичный баг велосипеда и обертки над бд. Биндинг параметров в подготовленном запросе вызвался в цикле и каждый раз писал в один и тот же индекс. Но все равно печально, что приходится тратить время на такое.
источник

Т

Тающий звук... in dlang.ru
Возьми готовый пакет из репозитория, им удобней пользоваться, чем этим
источник

Т

Тающий звук... in dlang.ru
Я вчера вот на это переписал https://code.dlang.org/packages/d2sqlite3
источник

Т

Тающий звук... in dlang.ru
А до этого было через ddbc, думал переделать и тут после обновления Линукса ddbc перестал компилироваться, вот и переделал
источник

SG

Serg Gini in dlang.ru
Интересно как пакет может сломаться от обновления линукса ...
источник

DH

Dark Hole in dlang.ru
Обнова dmd
источник

KF

Konstantin Firsov in dlang.ru
Спасибо за ссылку, но мне кажется менять уже на стадии почти готовой проги невыгодно, нужно опять тестировать почти все запросы и связанную с ними логику + изучать апи на опасность иньекций, отмечу либу для другого проекта или если вскроются баги или лютые утечки в велосипеде. С одной стороны, на своих велосипедах багов и сюрпризов больше, с другой стороны - их отладить проще и сразу на каждую проблему поставить предохранитель. На фоне велосипедов я подстраховываюсь максимальной обратной связью от проги и выводом в гуи логгера и автоматической индикации на случай ошибок. Но этот баг оказался коварнее, т.к. эксепшена не было... по-сути ошибка в моем апи, которое не следит за индексами и допускает их перезаписать или обойти. Буду как-то придумывать, чтобы эксепшен рожался при таком вызове, чтобы второй раз грабли по лбу не стукнули.
источник

Т

Тающий звук... in dlang.ru
Ну просто после обновления Линукса мне пришлось перекомпилировать всё, т.к. обновились библиотеки. Но ПО не смогло перекомпилироваться из-за ошибок, которые вылезли в момент перекомпиляции ddbc. Я так понял, что эти ошибки были связаны с внешними константами, которые находились  вне пакета и почему-то он их не видел. Хотя до обновления Линукса всё всегда компилировалось нормально
источник

Т

Тающий звук... in dlang.ru
Разбираться я не стал в проблеме, а решил переделать на другой пакет, т.к. планировал это раньше
источник

KF

Konstantin Firsov in dlang.ru
мда, если либа для работы с бд отвалится, то это большая беда. Если не будет врапперов\адаптеров для неё, то это огромная потеря времени на переделки, а если писать обертки, то будет тратится много времени уже на них и на борьбу с различием апи в разных либах. Это выглядит как замкнутый круг.
источник

Т

Тающий звук... in dlang.ru
Обрати внимание, кто разработчик того пакета. И ещё мне интересно, что за инъекции ?
источник

Т

Тающий звук... in dlang.ru
Ну с этой точки зрения конечно больше доверия к стандартной библиотеке, только плохо, что они там более-менее удобную обёртку не сделали, т.к. на таком языке это реализуется достаточно просто
источник

SG

Serg Gini in dlang.ru
А кто это?
источник

Т

Тающий звук... in dlang.ru
Я имел ввиду, что там сообщество(dlang-community), у меня возникла ассоциация с большей надёжностью и что не забросят внезапно. Конечно может я ошибаюсь
источник

SG

Serg Gini in dlang.ru
А, я подумал ты про ddbc - там Лопатин
источник

Т

Тающий звук... in dlang.ru
Не, я про это dlang-community/d2sqlite3
источник

Т

Тающий звук... in dlang.ru
ddbc тоже нормальный был, но там ещё коннект к другим базам, что в этом проекте для меня избыточно, мне тут только sqlite нужен.
источник

Т

Тающий звук... in dlang.ru
Ещё он через odbc драйвер коннектился и как раз ошибки в той части ПО и вылезли
источник

Т

Тающий звук... in dlang.ru
Ну это ладно
источник