Seite 1 von 1

QODBC und unixODBC

Verfasst: 1. Dezember 2009 15:25
von AuE
Hi,

hat hmd von euch QODBC über unixODBC genutzt?

Ich hab das Problem das ich immer Folgendes zurückbekomme:
Error opening the Database: " [unixODBC][Driver Manager]Data source name not found, and no default driver specified QODBC3: Unable to connect"
Wo liegt hier das Problem? Muss ich noch die INI vom unixODBC anpassen?

Code: Alles auswählen

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC3");
	db.setConnectOptions("SQL_ATTR_ODBC_VERSION=SQL_OV_ODBC3");
	db.setHostName(ui->leHost->text());
	db.setDatabaseName(ui->leDatabase->text());
	db.setUserName(ui->leUser->text());
	db.setPassword(ui->lePasswd->text());

//	db.setDatabaseName(QString("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=%0; DATABASE=%1; " )
//			.arg(ui->leHost->text()).arg(ui->leDatabase->text())  );
	if ( !db.open())
	{
		qDebug() << "Driver available:" << QSqlDatabase::drivers() ;
		qDebug()<< "Error opening the Database:" << db.lastError().text() ;
		return;
	}
	else
	{
		qDebug() << "Connect success";
	}

Verfasst: 1. Dezember 2009 17:57
von AuE
Ok also das eigentliche Problem scheint gelöst....
Ich kann mich verbinden. Musste mir noch einen User hinzufügen und nun kann ich via

Code: Alles auswählen

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("localhost");
db.setDatabaseName("database");
db.setUserName("usr");
db.setPassword("1234");
db.setDatabaseName(QString("DRIVER={MySQL}" ));
connecten.... Allerdings verstehe ich den setDatabase aufruf nicht.

Ich dachte zunächst das der Treiber jener Sectionheader aus /etc/obc.ini wäre - scheint es aber nicht zu sein denn wenn ich die ini verändere kann ich dennoch connecten.

Allerdings schlägt der connect fehl wenn ich die Zeile setDatabaseName() rausnehme.

Kann mir jmd von euch erklären woher er den Treiber nimmt bzw was man dort und wie konfigurieren kann?

Thx!