Название: Лень проверять на ошибки каждую команду... Отправлено: White Owl от Февраль 12, 2008, 22:26 Имеется приложение со встроенной базой. Структура базы задана жестко и известна еще на момент компиляции. Поэтому в теории ошибок типа "несуществующее поле" никогда появляться не должно. Однако все мы люди, все опечатываемся и на этапе дебага такие ошибки вполне могут быть.... Это было предисловие.
Что хочется? Иметь возможность писать код типа Код: QSqlQuery qry; QT собрана без исключений, так что try{}catch не применима. qInstallMsgHandler() использую, он прекрасно ловит проблемы в гуе, но не ловит ошибки происходящие внутри QSql классов. Идеи? Название: Re: Лень проверять на ошибки каждую команду... Отправлено: Вячеслав от Февраль 12, 2008, 23:22 Цитировать QT собрана без исключений, так что try{}catch не применима С какого перепугу ? Ты не должен отдавать exception в главный цикл а так - кидай наздоровье ;)Другой вопрос,что qt их не юзает ..... из тупых идей - сделай дефайн типа Q_ASSERT'a которому скармливаешь запрос в качестве параметра и который разворачиваеться в проверку lastError'a ..... PS __FILE__ и __LINE__ хоть старички уже,но временами очччень помогают ошибку найтить ;) Название: Re: Лень проверять на ошибки каждую команду... Отправлено: WW от Февраль 13, 2008, 16:59 OFFTOP: я дак думаю СУБД - Sybase ASA?
Название: Re: Лень проверять на ошибки каждую команду... Отправлено: White Owl от Февраль 13, 2008, 18:21 2WW: Не угадал. В данную секунду SQLite. ASA все таки коммерческий продукт и в GPL программке ее использовать не очень хорошо... Но интуиция тебя не обманывает :)
2Вячеслав: мммм.... Q_ASSERT? нууу.... в принципе можно сделать примерно так: Код: #define CHECK_QUERY(qry) { \ В идеале, мне хотелось бы иметь нечто подобное перловому DBD, там просто передаешь в команду создания коннекта параметр PrintError=>1 и каждый запрос к базе на который сервер ругнулся будет выкидывать текст ошибки в stderr, скажешь ему PrintError=>0 и stderr будет чист. А нормальная обработка ошибок будет работать всегда. Название: Re: Лень проверять на ошибки каждую команду... Отправлено: Вячеслав от Февраль 13, 2008, 22:13 ну таки сам себе ответил ;) Я почти не пользую Qt-шный sql модуль - мне он не подходит из-за отсутствия поддержки параметров транзакций , поэтому с подобной проблемой не столкнулся (еще) ....Хотя меня тоже бесит необходимость тупых проверок на каждом шаге :(
ЗЫ в нашем случае - приходит злой exception ;) PPS а чего sqLite а не mysql-emb или fb-emb ? последний и sp с тригерами держит ;) Название: Re: Лень проверять на ошибки каждую команду... Отправлено: White Owl от Февраль 14, 2008, 00:59 SQLite'а пока хватает. Планируемые объемы от десяти до четырех тысяч строк на каждую из десятка таблиц :) Может потом и перейду на что-нибудь более мощное. Но пока нужды нет.
Название: Re: Лень проверять на ошибки каждую команду... Отправлено: Krow от Февраль 19, 2008, 14:04 Не хочу открывать новую тему, думаю может здесь подскажите.
Я использую на данный момент sqlite, но её возможностей щас уже мало. много слышал про MySQL embedded и Firebird embedded, но никак не могу их найти. где скачать? у интербейса до слиянием с файрбёрдом был проект yaffil.em. а про мускул ничего не знаю. как это всё будет на линуксе работать, тоже не представляю себе. может кто подскажет что, или ресурс? Название: Re: Лень проверять на ошибки каждую команду... Отправлено: ритт от Февраль 19, 2008, 16:25 воспользуйся поиском по форуму
сборка со встроенным птицом вообще никаких проблем не несёт, встроенный мускуль нужно слегка обнаждачить Название: Re: Лень проверять на ошибки каждую команду... Отправлено: Krow от Февраль 19, 2008, 17:15 воспользуйся поиском по форуму пользовался, не нашёл информации. если есть я ж попросил показать ресурс.сборка со встроенным птицом вообще никаких проблем не несёт, встроенный мускуль нужно слегка обнаждачить а что насчёт обнаждачить то для того чтобы брать в руки напильник нужно знать что делать, а яхз откуда начать. Название: Re: Лень проверять на ошибки каждую команду... Отправлено: Пантер от Февраль 19, 2008, 17:40 http://switch.dl.sourceforge.net/sourceforge/firebird/Firebird-2.1.0.17735_0_Win32.exe (http://switch.dl.sourceforge.net/sourceforge/firebird/Firebird-2.1.0.17735_0_Win32.exe)
http://ru.wikipedia.org/wiki/Firebird (http://ru.wikipedia.org/wiki/Firebird) Есть вещь такая - www.google.com (http://www.google.com) Название: Re: Лень проверять на ошибки каждую команду... Отправлено: Krow от Февраль 19, 2008, 18:07 блин, чего то туплю. фаер нашёл,
ещё один тупой вопрос. для линукса вообще embedded версию сделать можно или всё таки это тока для винды? Название: Re: Лень проверять на ошибки каждую команду... Отправлено: Пантер от Февраль 19, 2008, 19:01 Что только для винды? Кутя с птицей собираются под Линем намного легче, чем под маздаем.
Только нужно source птицы качать и собирать. Название: Re: Лень проверять на ошибки каждую команду... Отправлено: Krow от Февраль 19, 2008, 20:08 имею ввиду embedded версию птицы. (типа как склайт). я так понимаю что в лине только устанавливать сервер птицы? собрать кути с поддержкой птицы смогу.
Название: Re: Лень проверять на ошибки каждую команду... Отправлено: Tonal от Февраль 20, 2008, 08:36 Для птицы embedded есть под все платформы.
Название: Re: Лень проверять на ошибки каждую команду... Отправлено: ритт от Февраль 20, 2008, 15:19 для мускуля под винь и линь точно
|