logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[SQLAPI] Jak połączyć SQLAPI z C++ Builder 6 Personal? Brak połączenia z bazą danych

AVRowiec 04 Cze 2010 01:20 2568 2
REKLAMA
  • #1 8153020
    AVRowiec
    Poziom 18  
    Posty: 361
    Pomógł: 11
    Ocena: 6
    Pytanie jest proste: dlaczego to razem nie działa :)

    Strona projektu: www.sqlapi.com

    Biblioteka jest przygotowana również pod Borlanda Buildera ale nie moge tego uruchomić. Tzn udało mi się ruszyć program ale nie mam połączenia z bazą.

    Załączam plik nagłówkowy tak jak nakazuje manual:

    #include "SQLAPI.h"


    W myśl przepisu:

    Cytat:
    #include <SQLAPI.h> - main header, should be used whenever SQLAPI++ is used.


    Teoretycznie powinno się również dodać:

    Cytat:
    #include <myAPI.h> - MySQL, should be included if direct MySQL C API calls are required


    No ale z tym nie chce się kompilować.

    Oczywiście do folderu projektu dorzucam cały folder 'mysql'

    Co więcej trzeba dodać .lib'a:

    Cytat:
    Programmers need to link with static or dynamic libraries.
    (...)
    sqlapib.lib - for linking with release version of dynamic library (Borland C++)
    sqlapibd.lib - for linking with debug version of dynamic library (Borland C++)
    sqlapibs.lib - for linking with release version of static library (Borland C++)
    sqlapibsd.lib - for linking with debug version of static library (Borland C++)


    za pomocą dyrektywy:

    #pragma link "sqlapibsd.lib"
    
       LUB
    
    #pragma link "sqlapibs.lib"


    Bo bez tego wyrzuca błąd "Unresolved external ... referenced from ..."
    Co ciekawe działa tylko z którymś z tych dwóch plików. Nie wiem czym się różnią. Debug version to jakaś bez bugów a release to jakaś świeższa niesprawdzona??

    Na dysku mam zainstalowanego MySQL w wersji 4.1 (testowałem także v5).
    Przy zegarze pali się zielona kontrolka w ikonie programu (tj zielone światło na sygnalizacji - znaczy się działa). Wcześnie w programie SQL monitor czy jakoś tak zrobiłem sobie bardzo prostą baze i nazwałem ją 'bazatestowa'.

    Żeby połączyć się z bazą należy użyć polecenia:

    SAConnection con;
    con.Connect("bazatestowa", "root", "temek2", SA_SQLServer_Client );


    Ten kod jest żywcem z Example'ów producenta.

    Program się kompiluje i uruchamia. Po uruchomieniu powyższego kodu cały program się zatrzymuje a po parunastu sekundach wyrzuca błąd - ten spod throw'a:

    Cytat:
    External exception EEFFACE.


    Dlaczego nie moge tego uruchomić? Co robię nie tak?
  • REKLAMA
  • #2 8158097
    Ballbreaker
    Poziom 12  
    Posty: 71
    Pomógł: 7
    Ocena: 1
    Powód błędu: zbyt szybkie czytanie dokumentacji ;)

    Twój program jest klientem typu SA_MySQL_Client

    Łączysz się z bazą MySQL, a więc używasz klienta typu SA_MySQL_Client
    SA_SQLServer_Client to klient serwera Microsoftu.


    [OT]:

    Cytat:
    Teoretycznie powinno się również dodać:
    Cytat:
    #include <myAPI.h> - MySQL, should be included if direct MySQL C API calls are required
    No ale z tym nie chce się kompilować.


    Dlaczego? Jaki jest komunikat błędu?
  • #3 8160632
    AVRowiec
    Poziom 18  
    Posty: 361
    Pomógł: 11
    Ocena: 6
    Miałeś rację. łączyłem się nie z tym co potrzeba. Wpisałem jak należy i teraz błąd wyskakuje momentalnie. Pojawia się coś takiego:

    Source File not Found: myAPI.cpp

    [SQLAPI] Jak połączyć SQLAPI z C++ Builder 6 Personal? Brak połączenia z bazą danych

    Tylko ignore przenosi do tego okna:

    Komunikat o wyjątku.

    [SQLAPI] Jak połączyć SQLAPI z C++ Builder 6 Personal? Brak połączenia z bazą danych

    Potem coś takiego:

    Source File not Found: myClient.cpp:

    [SQLAPI] Jak połączyć SQLAPI z C++ Builder 6 Personal? Brak połączenia z bazą danych

    Co ciekawe jak szukam tych plików .cpp na dysku to nie moge ich znaleźć. Czyżby to było coś z tych .lib 'ów?

    A dodanie:

    #include "myAPI.h" 


    kończy się takim czymś:

    [SQLAPI] Jak połączyć SQLAPI z C++ Builder 6 Personal? Brak połączenia z bazą danych

    Jeśli nie widać na obrazku: Przenosi do pliku myAPI.h i wywala takie błędy:

    Cytat:
    [C++ Error] myAPI.h(11): E2209 Unable to open include file 'mysql.h'
    [C++ Error] myAPI.h(12): E2209 Unable to open include file 'errmsg.h'
    [C++ Error] myAPI.h(20): E2147 'STDCALL' cannot start a parameter declaration
    [C++ Error] myAPI.h(20): E2147 'MYSQL_RES' cannot start a parameter declaration
    [C++ Error] myAPI.h(20): E2091 Functions cannot return arrays or functions
    [C++ Error] myAPI.h(21): E2293 ) expected
    [C++ Error] myAPI.h(22): E2147 'STDCALL' cannot start a parameter declaration
    [C++ Error] myAPI.h(22): E2147 'MYSQL_RES' cannot start a parameter declaration
    [C++ Error] myAPI.h(22): E2091 Functions cannot return arrays or functions
    [C++ Error] myAPI.h(23): E2257 , expected
    [C++ Error] myAPI.h(25): E2293 ) expected
    [C++ Error] myAPI.h(26): E2257 , expected
    [C++ Error] myAPI.h(27): E2293 ) expected
    [C++ Error] myAPI.h(29): E2293 ) expected
    [C++ Error] myAPI.h(30): E2293 ) expected
    [C++ Error] myAPI.h(31): E2293 ) expected
    [C++ Error] myAPI.h(32): E2293 ) expected
    [C++ Error] myAPI.h(33): E2293 ) expected
    [C++ Error] myAPI.h(34): E2293 ) expected
    [C++ Error] myAPI.h(35): E2293 ) expected
    [C++ Error] myAPI.h(36): E2293 ) expected
    [C++ Error] myAPI.h(38): E2257 , expected
    [C++ Error] myAPI.h(40): E2293 ) expected
    [C++ Error] myAPI.h(43): E2293 ) expected
    [C++ Error] myAPI.h(44): E2293 ) expected
    [C++ Error] myAPI.h(44): E2228 Too many error or warning messages


    Proszę poprawnie umieszczać obrazki, poprawiłem - arnoldziq
REKLAMA