QODBC und unixODBC

Alles rund um die Programmierung mit Qt
Antworten
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

QODBC und unixODBC

Beitrag 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";
	}
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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!
Antworten