Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

QtSql | Nie moge połączyć się z bazą danych - QODBC

bartes19 23 Gru 2015 22:56 3567 90
  • #1 23 Gru 2015 22:56
    bartes19
    Poziom 5  

    Jak w temacie nie mogę połączyć sie z bazą danych, na screenach wszystko widac.
    Przez program Aqua Data Studio połączyłem się bez problemu i zaimplementowałem baze, a w środowisku Qt nie moge. prosze o pomoc

    0 29
  • #2 23 Gru 2015 23:46
    bogiebog
    Specjalista Sieci, Internet

    netstat -an| findstr 9105

    pokaż wydruk.

    Dodano po 1 [minuty]:

    zamiast :9105 użyj setPort()

    Dodano po 55 [sekundy]:

    zamiast /informix uży setDatabaseName()

    0
  • #5 24 Gru 2015 11:10
    bogiebog
    Specjalista Sieci, Internet

    "QODBC" - znaczy używasz ODBC metody, czyli musisz mieć ODBC DNS skonfigurowany dla tegj bazy, pokaź

    Jak skonfigurujesz ODBC połączenie w ODBC managerze i nazwiesz go "test1" (tam wpisujesz, user, hasło, port, host, ...), to potem łaczysz tylko za pomocą

    db = addDatabase("QODBC")
    db.setDatabaseName("test1")

    0
  • #7 24 Gru 2015 11:27
    bogiebog
    Specjalista Sieci, Internet

    spróbuj

    db = addDatabase("QODBC")
    db.setDatabaseName("informix")

    0
  • #9 24 Gru 2015 11:34
    bartes19
    Poziom 5  

    A czy w ODBC manager pole Service turbo9 nie ma znaczenia? może trzeba podac ten parametr w kodzie?

    0
  • #10 24 Gru 2015 11:56
    bogiebog
    Specjalista Sieci, Internet

    Jak test połączenia DSN "informix" działa w manager odbc, to w kodzie nic nie podajesz, tylko nazwę DSN "informix"

    Spróbuj dodać DSN "informix" zamiast w "DSN Użytkownika" do "Systemowe DSN"

    0
  • #12 24 Gru 2015 12:07
    bogiebog
    Specjalista Sieci, Internet

    Ja swoje, a ty swoje,
    Powodzenia.

    0
  • #13 24 Gru 2015 12:11
    bartes19
    Poziom 5  

    No zrobiłem wszystko o czym pisałeś, dodałem informix do Systemowe DSN, nie podaje żadnych danych oprócz nazwy DSN "informix", z góry sorry jak czegos nie zrobiłem, może nie zrozumiałem.

    0
  • #14 24 Gru 2015 12:13
    bogiebog
    Specjalista Sieci, Internet

    W kodzie masz DSN = blahblahblahblahblahblahblahblah a nie informix

    Dodano po 54 [sekundy]:

    bartes19 napisał:
    może nie zrozumiałem.

    bogiebog napisał:

    db = addDatabase("QODBC")
    db.setDatabaseName("informix")

    0
  • #17 24 Gru 2015 12:37
    bartes19
    Poziom 5  

    naprawde nie wiem co robię źle ;(((((((

    0
  • #18 24 Gru 2015 12:52
    bogiebog
    Specjalista Sieci, Internet

    Spróbuj

    db = addDatabase("QODBC")
    db.setDatabaseName("DSN=informix")

    0
  • #19 24 Gru 2015 12:55
    bartes19
    Poziom 5  

    Niestety - to samo

    0
  • #20 24 Gru 2015 13:00
    bogiebog
    Specjalista Sieci, Internet

    Cytat:

    QSqlDatabase Class | Qt SQL 5.5
    http://doc.qt.io/qt-5/qsqldatabase.html
    For the QOCI (Oracle) driver, the database name is the TNS Service Name.

    For the QODBC driver, the name can either be a DSN, a DSN filename (in which case the file must have a .dsn extension), or a connection string.


    może dla informixa jest jakis inny syntax dla dns, nie wiem

    Dodano po 59 [sekundy]:

    google qodbc qt informix

    http://www.progtown.com/topic722020-with-informix-through-qt-qodbc-the-driver.html

    0
  • #22 24 Gru 2015 13:26
    bogiebog
    Specjalista Sieci, Internet

    Spróbuj

    db = addDatabase("QODBC")
    db.setDatabaseName("ODBC;DSN=informix")

    0
  • #23 24 Gru 2015 14:24
    bartes19
    Poziom 5  

    Niestety rowniez nie działa, cos mi się zdaje że to nie jest wina kodu, tylko coś z serwerem, moze jakies sterowniki

    0
  • #24 24 Gru 2015 14:46
    bogiebog
    Specjalista Sieci, Internet

    Stery odbc masz przeca inaczej by "testuj połączenie" przy konfiguracji DSN, w admin ODBC, nie działało

    jeszcze jednen pomysł,
    jeśli twój program exe jest 32bitowy to skonfiguruj DSN ODBC 32 bit, nie 64bit,

    odbcad32.exe

    0
  • #26 24 Gru 2015 15:57
    bogiebog
    Specjalista Sieci, Internet

    bartes19 napisał:
    Tylko tu w wersji 32- bit nie mam do wyboru IBM ODBC Informix ...

    Jeśli twój program jest 32bitowy i chcesz łączyć przez ODBC to _musisz_ mieć zainstalowane stery odbc informix 32bit.

    0
  • #27 25 Gru 2015 16:36
    bartes19
    Poziom 5  

    bogiebog napisał:
    bartes19 napisał:
    Tylko tu w wersji 32- bit nie mam do wyboru IBM ODBC Informix ...

    Jeśli twój program jest 32bitowy i chcesz łączyć przez ODBC to _musisz_ mieć zainstalowane stery odbc informix 32bit.


    Problem rozwiązany, należało zainstalować sterowniki odbc informix 32bit

    Dzięki wielkie za pomoc i poświęcony czas !

    Dodano po 2 [godziny] 52 [minuty]:

    Jeszcze jeden mały problem!

    Qt nie odczytuje danych z bazy, w programie normalnie działają zapytania SQL, a w QT wyswietla tylko nazwy kolumn bez danych. Co może byc nie tak?

    0
  • #28 25 Gru 2015 16:55
    bogiebog
    Specjalista Sieci, Internet

    fetch next robisz po open ?

    Dodano po 6 [minuty]:

    Nie widzę jak kojarzysz db obiekt (połączenie do bazy) z model obiektem. Czyli model obiek nie ma przypisanej bazy danych.

    Dodano po 2 [minuty]:

    setQuery(const QString & query, const QSqlDatabase & db = QSqlDatabase())

    1
  • #30 25 Gru 2015 21:51
    bartes19
    Poziom 5  

    Jakiś pomysł ???

    0