Russian Qt Forum

Qt => Базы данных => Тема начата: chester от Январь 25, 2012, 10:57



Название: Создание dbf файла
Отправлено: chester от Январь 25, 2012, 10:57
Добрый день!!! Мне нужно создать dbf файл. Может кто подскажет как это сделать


Название: Re: Создание dbf файла
Отправлено: Пантер от Январь 25, 2012, 10:59
2 варианта:
1. Через QSqlDatabase и ODBC.
2. Самому разобраться с форматом (там не сложно).


Название: Re: Создание dbf файла
Отправлено: ddrtn от Январь 25, 2012, 10:59
Я делал через ODBC драйвер


Название: Re: Создание dbf файла
Отправлено: chester от Январь 25, 2012, 11:04
Я делал через ODBC драйвер

А примерчик не покажете?
У меня получилось только подключиться к dbf через odbc, а как создать ??


Название: Re: Создание dbf файла
Отправлено: ddrtn от Январь 25, 2012, 11:21
В dbf файл - это таблица.
Соответственно,
Код:
QSqlQuery q(database);
q.exec("create table mytable(field integer, field2 integer)");

Только нужно поддерживаемую ODBC для DBF версию sql знать


Название: Re: Создание dbf файла
Отправлено: chester от Январь 25, 2012, 11:53
Спасибо за ответ!!! Ну это же создастся таблица как раз таки в БД. Я использую Microsoft SQL Server. И мне нужно оттуда табличку выгрузить в dbf


Название: Re: Создание dbf файла
Отправлено: ddrtn от Январь 25, 2012, 12:40
Спасибо за ответ!!! Ну это же создастся таблица как раз таки в БД. Я использую Microsoft SQL Server. И мне нужно оттуда табличку выгрузить в dbf

Не понял...
Табличка создается в той базе, к которой подключена database.

Если это dbf - база, то создается новый файл dbf.
Дбф база представляет сабой папку с dbf файлами (так ее подключают через odbc)


Название: Re: Создание dbf файла
Отправлено: chester от Январь 25, 2012, 12:45
Я делаю так
Код
C++ (Qt)
QSqlDatabase dbase = QSqlDatabase::addDatabase("QODBC", "conn2");
dbase.setDatabaseName("Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;");
   if (!dbase.open()) {
       QMessageBox::critical(this, tr("Ошибка SQL"),  dbase.lastError().text());
       return;
   }
QSqlQuery query(dbase);
   query.exec("CREATE TABLE E:\\TABLE(field integer, field2 integer)");
 
Вроде выгружается ;)) Спасибо большое!!! Если не трудно скажите правильно ли я подключаюсь к базе ??


Название: Re: Создание dbf файла
Отправлено: Пантер от Январь 25, 2012, 13:11
Путь не указываешь при подключении.  Тут посмотри (http://connectionstrings.com/).


Название: Re: Создание dbf файла
Отправлено: chester от Январь 25, 2012, 13:23
Спасибо, исправил