[Linux] Qt 4.4 + PostgrSQL 8.3.1

Программа изначально писалась на SQLite, но показывать нужно будет на PostgreSQL.

При попытке проверок возникли неокторые проблемы. При открытии БД с драйвером QPSQL ругается на
This version of PostgreSQL is not supported and may not work.
но БД открывает, а затем создаёт таблицы след. кодом:

bool sql::initDatabase() {
	qDebug() << "sql::initDatabase()";
	if(cnf->dbType=="QSQLITE") {
		QFile file(cnf->dbName);
		file.remove();
	}
	if(openDatabase()) {
		QSqlQuery query;
		query.exec("CREATE TABLE category ("
				"id INTEGER PRIMARY KEY,"
				"name VARCHAR(64) NOT NULL,"
				"nth INTEGER NOT NULL,"
				"items INTEGER)");
		if(!checkQuery(query)) return false;
		query.exec("CREATE TABLE disc ("
				"id INTEGER PRIMARY KEY,"
				"name VARCHAR(128) NOT NULL,"
				"descr TEXT,"
				"year INTEGER,"
				"catid INTEGER NOT NULL,"
				"type INTEGER,"
				"FOREIGN KEY (catid) REFERENCES category)");// ON UPDATE CASCADE)");
		if(!checkQuery(query)) return false;
		query.exec("CREATE TABLE files ("
				"id INTEGER PRIMARY KEY,"	// просто id записи
				"name VARCHAR(1024) NOT NULL,"	// имя файла/директории (не путь)
				"parentid INTEGER NOT NULL,"	// id записи родителя (директории), для верхнего уровня 0
				"type INTEGER NOT NULL,"	// тип: директория или файл (тип файла по необходимости)
				"size INTEGER NOT NULL,"	// размер
				"date VARCHAR(20),"		// дата файла, не обязательно
				"metadata INTEGER,"		// ссылка на метаданные если нужно.
				"discid INTEGER NOT NULL,"	// ссылка на диск к которому принадлежат файлы
				"FOREIGN KEY(discid) REFERENCES disc)");
		if(!checkQuery(query)) return false;
		return true;
	} else
		return false;
}

На что в консоль ругается:

NOTICE: CREATE TABLE / PRIMARY KEY создаст подразумеваемый индекс "category_pkey" для таблицы "category"
NOTICE: CREATE TABLE / PRIMARY KEY создаст подразумеваемый индекс "disc_pkey" для таблицы "disc"
NOTICE: CREATE TABLE / PRIMARY KEY создаст подразумеваемый индекс "files_pkey" для таблицы "files"

То есть мой предполагаемый индекс id оказывается вообще ни у дел. Как мне решить эту проблемы? Если интересны исходнники то я выкладывал вот здесь: http://prog.org.ru/forum/index.php/topic,7298.0.html

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Вопрос снят,

Вопрос снят, тут просто различия при CREATE TABLE ну и там по коду кое где мои косяки были.

А то что кричит что "не поддерживается" - это всё фигня, оно работает.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023