Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

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 :(
1.07.2011, 08:35

Maurycy Mikulski szukam następnych
wyzwań -
programista
C++(MS,QT),C#,PHP,..
.

Temat: Połączenie (Driver) z Sybase w QT

propozycja
Uż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".
1.07.2011, 10:58

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.
1.07.2011, 11:23

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 ..");
1.07.2011, 11:45

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:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("LaptopDELL_iqdemo");
db.setDatabaseName("iqdemo");
db.setUserName("DBA");
db.setPassword("sql");
Tomek Łos edytował(a) ten post dnia 01.07.11 o godzinie 11:56
1.07.2011, 11:52

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
1.07.2011, 12:06

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:

Obrazek

Co powinienem wpisać w setDatabaseName ?

Dzięki jeszcze raz za pomoc - to moje pierwsze kroki z Sybase
1.07.2011, 12:28

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.
1.07.2011, 12:55

Temat: Połączenie (Driver) z Sybase w QT

Dzięki! Pięknie działa!
1.07.2011, 12:58



Wyślij zaproszenie do