Название: Подключение к БД и постобработка данных Отправлено: __Heaven__ от Август 17, 2015, 18:00 Привет, друзья!
Не могу подключиться к базе accdb... Прошу помочь, ибо гугл не помог. Код: QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); Название: Re: Как подключиться к БД access 2010 Отправлено: Bepec от Август 17, 2015, 21:48 "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=\\\\192.168.0.1\\db.accdb;"
Работающая строка. А вы слеши поправьте к примеру, Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 07:38 Пробовал обращать... не помогло. Сейчас снова буду танцы танцевать: )
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 07:52 Я бы хотел еще узнать, реально ли в таблицу будет добавлять к примеру, около 250 гб информации? Планируется иметь около 10 столбцов чисел двойной точности. Добавлять хотелось бы не через запросы, а напрямую. Знаю, что на vba это возможно.
Название: Re: Как подключиться к БД access 2010 Отправлено: Пантер от Август 18, 2015, 08:50 Аксес - говно его лучше совсем не использовать. Заменить не вариант?
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 09:13 Задача такая:
Однократно выгрузить из программы результаты расчёта (подробные) и передать в excel для дальнейшей обработки. Если я использую формат csv, то винчестер захламляется со скоростью света, выгрузка идёт медленно и, мне кажется, что моя 32 разрядная версия excel (другую мне не дадут) не потянет все данные сразу, точно придётся бить на группы. В связи с этим возникла идея использовать аксес для хранения значений, их обработки и выгрузки в эксель Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 09:29 Я так понимаю, что драйвер ODBC это некая служба или прога в винде... Как можно определить, работает ли она?
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 09:33 Или может в самом аксесе нужно какую-то настройку дёрнуть для доступа?
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 09:41 Я догадался вывести lastError
Цитировать [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию QODBC3: Unable to connect Название: Re: Как подключиться к БД access 2010 Отправлено: Пантер от Август 18, 2015, 09:52 Выгружай в dbf, его эксель понимает. Или в любой другой формат.
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 10:06 Зашёл в инструмент редактирования настроек ODBC без прав админа. При тыке на настройки выдаётся 2 сообщения, см. аттач. C dbf я не знаком. Как его создать и начать выгружать?
Название: Re: Как подключиться к БД access 2010 Отправлено: Пантер от Август 18, 2015, 10:15 DBF достаточно простой формат с открытыми спеками. Еще есть вариант выгрузить в SQLite и его открыть в excel (вроде, это возможно). С access лучше не связываться.
Название: Re: Как подключиться к БД access 2010 Отправлено: Bepec от Август 18, 2015, 11:12 Access действительно очень "специфичный" и выгрузка в него гигабайт информации кажется мне неосуществимой.
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 11:39 У меня drivers() выдаёт только SQLite. Так понимаю, что odbc не идёт в комплекте с установщиком qt для windows... Пересобирать?
Название: Re: Как подключиться к БД access 2010 Отправлено: kai666_73 от Август 18, 2015, 11:55 У меня drivers() выдаёт только SQLite. Так понимаю, что odbc не идёт в комплекте с установщиком qt для windows... Пересобирать? Весь Qt не обязательно, достаточно только QODBC драйвер плагином.Но, как уже советовали, с аксессом едва ли стоит связываться... Название: Re: Как подключиться к БД access 2010 Отправлено: Пантер от Август 18, 2015, 12:08 Кстати, помимо акцеса, сам ODBC тормозной, поэтому свои гигабайты ты будешь оооочень долго слать. Дольше, чем в csv.
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 12:19 Кстати, помимо акцеса, сам ODBC тормозной, поэтому свои гигабайты ты будешь оооочень долго слать. Дольше, чем в csv. Надо было с этого начать))) Ладно, ещё подумаю, как выкрутиться из своей задачи....Название: Re: Как подключиться к БД access 2010 Отправлено: Пантер от Август 18, 2015, 12:25 Данные какого вида? Самое универсальное (мне так кажется) будет выгрузить все в csv, а его уже перегнать в другой формат, который понимает excel. Перегонялок должно быть много, ибо формат простой и многими поддерживается.
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 12:46 Данные вида
double, double, double, double, double, double, double, double, double Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 12:47 Мне просто не хватит винчестера на всё при выгрузке csv
Название: Re: Как подключиться к БД access 2010 Отправлено: Пантер от Август 18, 2015, 12:48 Тогда cvs отлично подходит. Ничего экранировать не надо. :) А там берешь конвертер cvs -> xls (уверен, что он есть) и открываешь в ёкселе.
Название: Re: Как подключиться к БД access 2010 Отправлено: Пантер от Август 18, 2015, 12:49 Мне просто не хватит винчестера на всё при выгрузке csv А с чего ты взял, что акцесс это все сожмет? О_оНазвание: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 13:02 Ну, расчёт на то, что дабл занимает 8 байт, а текст ... хз.
Вообще, да. В тексте он будет занимать по 3-5 символов. Хочу ещё попробовать помучить sqlite. Всё-таки хочется постобработки. Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 14:08 Дабы темы не плодить, тут поинтересуюсь.
Я создал базу sqlite и смог к ней подсоединиться. В базе уже есть таблица с 2 строками. Как мне пройтись по всем строчкам и посмотреть их значения? Как мне добавлять значения в таблицу? Запросы писать не хотелось бы, ибо долго выполняться они будут. На данный момент получил Код: QSqlRecord rec = db.record("Composition"); Название: Re: Как подключиться к БД access 2010 Отправлено: Пантер от Август 18, 2015, 14:16 Юзай модельки. QSqlTableModel.
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 18, 2015, 14:25 Оооо! Взлетели :)
Спасибо Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 20, 2015, 10:02 А в каком порядке sqlite хранит байты? Меня интересует little-endian
Название: Re: Как подключиться к БД access 2010 Отправлено: Пантер от Август 20, 2015, 10:04 А тебе какая разница, как они хранятся в БД?
Название: Re: Как подключиться к БД access 2010 Отправлено: __Heaven__ от Август 20, 2015, 10:42 Я получил файл в 85 Гб.
Хочу теперь его исследовать ручками на предмет всяких зависимостей. Пользуюсь портативной версией программы SQLite Database Browser. Очень долго думает при открытии файла. Запросы пока ещё не делал, но боюсь представить... Подозреваю, что данные хранятся в big. И чтобы провернуть 85 Гб в little потребуется не мало усилий. Название: Re: Подключение к БД и постобработка данных Отправлено: Пантер от Август 20, 2015, 10:55 Попробуй из Кьюта открыть базу и поделать запросы.
Название: Re: Как подключиться к БД access 2010 Отправлено: Old от Август 20, 2015, 11:21 Я получил файл в 85 Гб. Взяли бы вы сразу БД по серьезней. :)IMHO, sqlite не очень подходит для таких объемов. Название: Re: Подключение к БД и постобработка данных Отправлено: Bepec от Август 20, 2015, 11:30 sqlite все таблицы кроме BLOB в стрингах хранит, экономия сомнительная.
Переводите всё в бинарник. Название: Re: Подключение к БД и постобработка данных Отправлено: __Heaven__ от Август 20, 2015, 11:43 Спасибо за советы - буду думать
Название: Re: Подключение к БД и постобработка данных Отправлено: __Heaven__ от Август 20, 2015, 12:39 sqlite все таблицы кроме BLOB в стрингах хранит, экономия сомнительная. Я сгенерировал небольшую таблицу, состоящую из double и открыл через текстовый просмотрщик. Своих цифр в виде текста я не нашёл.Переводите всё в бинарник. Название: Re: Подключение к БД и постобработка данных Отправлено: __Heaven__ от Август 20, 2015, 12:45 Взяли бы вы сразу БД по серьезней. :) К сожалению, прав админа у меня нет и приходится выкручиваться как есть.Задачей является выгрузка информации и передача её другому сотруднику для обработки. С sql он не знаком. Если брать БД серьёзнее, то её нужно поставить на 2 pc (прав нет, но можно портабл, например psql), настраивать сеть я тоже не имею прав, а потом нужен интерфейс для вывода данных и применения фильтров, основной это ввод диапазона значений. Название: Re: Подключение к БД и постобработка данных Отправлено: Old от Август 20, 2015, 12:53 К сожалению, прав админа у меня нет и приходится выкручиваться как есть. Как-то странно. Вы там играетесь или задачу решаете? :)Если второе, то админ должен был сам поднять сервер БД, предоставить вам с коллегой к нему доступ, что бы ваша программа сохраняла данные, а ваш коллега в тоже время их мог обрабатывать. А сейчас вы как эти файлы будете передавать? По сети или флешками? А если флешки начнут дохнуть вместе с данными? Или для вас полученные данные не важны? :) Название: Re: Подключение к БД и постобработка данных Отправлено: __Heaven__ от Август 20, 2015, 13:02 Согласен - маразм :) но проще так, чем доказывать, что мне нужна БД через 8 инстанций. Такая, блин, система...
Передаю через внешний винт. Название: Re: Подключение к БД и постобработка данных Отправлено: __Heaven__ от Август 20, 2015, 13:04 Попробуй из Кьюта открыть базу и поделать запросы. Может я чего-то не понимаю...Код
Вывод Цитировать true -1 Название: Re: Подключение к БД и постобработка данных Отправлено: Old от Август 20, 2015, 13:13 Цитировать bool QSqlDriver::hasFeature(DriverFeature feature) const QSqlDriver::QuerySize 1 Whether the database is capable of reporting the size of a query. Note that some databases do not support returning the size (i.e. number of rows returned) of a query, in which case QSqlQuery::size() will return -1. Название: Re: Подключение к БД и постобработка данных Отправлено: __Heaven__ от Август 20, 2015, 14:27 Спасибо, я почему-то подумал, что sqlite не относится к таковым...
Попробуй из Кьюта открыть базу и поделать запросы. Пантер, на что хотел натолкнуть?Код
Цитировать true Диспетчер процессов показал, что на время запроса было задействовано 1 ядро 100% (xenon e5 3.6GHz), а на время цикла в поле диск значение колебалось от 160 до 210 Мб/с.36183 678940 1227256 Название: Re: Подключение к БД и постобработка данных Отправлено: Пантер от Август 20, 2015, 15:43 А что тебе с данными нужно сделать?
Название: Re: Подключение к БД и постобработка данных Отправлено: __Heaven__ от Август 20, 2015, 15:49 Конкретно до конца сам не понимаю, так как другой человек будет ими заниматься. А так он собирается выводить по диапозонам, смотреть на цифры. Как-то так...
Название: Re: Подключение к БД и постобработка данных Отправлено: __Heaven__ от Август 20, 2015, 15:51 Глобальная задача такая. Есть некая модель, критерий, по которой идёт расчёт. Если критерий удовлетворительный, то модель адекватная, если нет - нет.
Необходимо выделить группы по хим. составу, в которых модель работает стабильно, а в каких нет. |