| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [wx] ODBC DatabaseLayer - как это работает? |
| Автор: Static 19.11.2008, 10:56 | ||
| Дано: БД SQL Anywhere WxWidgets 2.8.9 Code::Blocks 8.02 DatabaseLayer 1.7.5
Приложение крашится :( Читал http://wxwidgets.info/wx_accessing_sqlite - немного не то, пытался сделать по аналогии. В чем может быть проблема? собрал libdatabaselayer_databaselayer_odbc.a - указываю ее линкеру... |
| Автор: t_rex 19.11.2008, 18:36 |
| В дистрибутиве DatabaseLayer есть тестовая прилога, посмотри как там сделано, а вобще ODBC в wx немного мм.. печальный, я не уверен что он так строковый DSN схавает, надо сидеть дебажить. В принципе если крашится, то лучше в пошаговом режиме посмотреть на какой строке и поправить сорец OdbcDatabaseLayer, думаю править все равно прийдется, там бывает на некоторых СУБД проблемы со строками |
| Автор: Static 20.11.2008, 09:31 |
| ох, обрадовали вы мну.... ладно, поглядим. P.S. Самое смешное, сделал почти все что хотел в итоге через wxDb. Потестил-повертел, удалил комментарии - перестало работать. Мистика... P.P.S. функция Open() DatabaseLayer'a не работала никак: ни через connection string; ни через Open(путь к файлу базы); - ну тут ладно, пароль все-таки нужен, учетка... ни в какой-либо другой форме :( |
| Автор: t_rex 21.11.2008, 01:34 |
| Ненене, ты wxDb не трогай, его скоро не будет. wxODBC упраздняют поэтому потом сапортить свой софт ты не сможешь. Лучше все-таки попробуй с DatabaseLayer добиться желаемого результата. Это не так сложно на самом деле. Пол-часа дебага и все решается. По поводу OdbcDatabaseLayer, создай пользовательский DSN и указывай его название при конекте. Должно отлично работать. С файловыми DSN не помню, надо пробовать. В Панель управления - Администрирование - Источники данных ODBC |
| Автор: Static 21.11.2008, 10:13 |
| про "скоро не будет" - в курсе. Я уже по долгу службы наверно все русское прочел по wx и за английское принялся Просто саппортить сей софт не надо будет, критичны сроки. А за Layer в следующем проекте примусь. |
| Автор: Static 3.9.2009, 11:09 |
| вернемся к DatabaseLayer'у 1. Пересобирая ODBCDatabaseLayer с новым компилятором, обнаружил, что не могу собрать версию для debug :-\ Т.е. либа-то собирается, но в проекте при попытке линковки оказывается куча undefined referenc'ов на wxLogDebug/wxOnAssert. Это очень неприятно. Причем в прошлый раз у меня такой проблемы не возникало. Что-то явно упустил, не могу понять - что... Нигде не могу найти более подробной инструкции по сборке, чем в его собственном хелпе. А там кроме mingw32-make -f makefile.gcc ничего не написано. Подскажите что-нибудь, пожалуйста. 2. Учитывая, что release сборка работает, я написал тестовое приложение (юникод). Оно должно работать в том числе и под вин98. Линкую libunicows.a к проекту - как обычно. Под 98 программа просто молча не запускается. Под ХР - работает нормально. Вопрос: при сборке самого DatabaseLayer'а тоже нужно подсунуть libunicows.a? Или проблема скорее всего не в этом?.. |
| Автор: t_rex 4.9.2009, 12:33 |
| проблема не в этом. мейкфайл надо править. если не находит всякое то надо убедиться что в мейкфайле правильно прописан путь к wxWidgets. А еще проще собрать статическую библиотеку в Code::Blocks - сделать там проект и настроить все самостоятельно |
| Автор: Static 4.9.2009, 17:07 |
| да смотрел я мейкфайл... Там не густо-то и места для копания в нем. В любом случае - спасибо, в понедельник буду думать дальше. |