Tomek Łos Tom Eł
Temat: Połączenie (Driver) z Sybase w QT
Cześć!Rzecz dzieje się pod Windowsem. Mam połączyć się z bazą danych Sybase. Programuję w
środowisku QT (C++).
Po kompilacji i uruchomienia - już przy próbie połączenia
wyskakuje mi komunikat:
QSqlDatabase: QTDS7 driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC QMYSQL3 QMYSQL
:(
skąd wziąć takiego drivera? Z MySQL też miałem taki problem,
lecz wystarczyło odpowiednie DLLki przegrać do katalogu z
programem. Tutaj nie mogę znaleźć żadnego DLLa :(
Maurycy
Mikulski
szukam następnych
wyzwań -
programista
C++(MS,QT),C#,PHP,..
.
Temat: Połączenie (Driver) z Sybase w QT
propozycjaUżyj QODBC.
W katalogu aplikacji utwórz katalog "sqldrivers"
wkopiuj tam odpowiednio pliki "qsqlodbc4.dll" lub "qsqlodbcd4.dll".
SyBase całkiem dobrze pracuje przez "ODBC".
Tomek Łos Tom Eł
Temat: Połączenie (Driver) z Sybase w QT
Ok, zrobiłem tak:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("LaptopDELL_iqdemo");
db.setDatabaseName("iqdemo");
db.setUserName("DBA");
db.setPassword("sql");
qDebug() << QSqlDatabase::drivers();
if( db.open()){
QMessageBox::information(0,"OK","Połczono Bazy Danych\n\r"+db.lastError().text());
}
else{
QMessageBox::information(0,"ERROR","Nie połczono Bazy Danych\n\r"+db.lastError().text());
exit(666);
}
driver wystartował.
Ale wyskoczył inny błąd:
Nie połczono Bazy Danych
[Microsoft][Menadżer sterowników ODBC] Nie można odnaleźć nazwy źródła danych, nie ma podanego sterownika QODBC3: Unable to connect.
Maurycy
Mikulski
szukam następnych
wyzwań -
programista
C++(MS,QT),C#,PHP,..
.
Temat: Połączenie (Driver) z Sybase w QT
Skonfiguruj sobie połączenie ODBC w systemowe DSN.Użyj db.setDatabaseName(".. nazwa DSN ..");
Tomek Łos Tom Eł
Temat: Połączenie (Driver) z Sybase w QT
dzięki, mam przeczucie, że zaraz się uda :)w manualu zobaczyłem:
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=myaccessfile.mdb");
Co powinnem wpisać?
teraz mam tak:
Tomek Łos edytował(a) ten post dnia 01.07.11 o godzinie 11:56
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("LaptopDELL_iqdemo");
db.setDatabaseName("iqdemo");
db.setUserName("DBA");
db.setPassword("sql");
Maurycy
Mikulski
szukam następnych
wyzwań -
programista
C++(MS,QT),C#,PHP,..
.
Temat: Połączenie (Driver) z Sybase w QT
Może od początku. Co jest co.Aplikacja QT -> driver QT(QODBC) ->(nazwa DSN lub string z danymi do połączenia)-> driwer(ODBC) sybase -> baza Sybase.
Możesz podać w db.setDatabaseName string z określeniem parametrów połaczenia czyli też wskazanie na driver SyBase(ja używałem od 7 do 11), i resztę parametrów.Opis jest w dokumentacji Sybase.
Bądź co jest prostsze skonfigurować DSN i podać nazwe.Maurycy Mikulski edytował(a) ten post dnia 01.07.11 o godzinie 12:17
Tomek Łos Tom Eł
Temat: Połączenie (Driver) z Sybase w QT
Dzięki -Nie wiem czy to coś zmienia ale w przyszłości programem chcę się łączyć z bazą na innym komputerze.
Póki co próbuję połączyć się na localu. Po wyświetleniu źródeł ODBC mam:

Co powinienem wpisać w setDatabaseName ?
Dzięki jeszcze raz za pomoc - to moje pierwsze kroki z Sybase
Maurycy
Mikulski
szukam następnych
wyzwań -
programista
C++(MS,QT),C#,PHP,..
.
Temat: Połączenie (Driver) z Sybase w QT
To co jest w "Data source name".Co do pracy w sieci to jest zakładka "Network" tam podaje się IP serwera.
Ja pracowałem z Sybase ponad 4lata i nie narzekam.
Tomek Łos Tom Eł
