mysql c-api?



  • Vorsicht, geht hier micht um den Borland C++ Builder sondern um Borland C++ 5.0x!



  • DJ BlackEagle schrieb:

    Welche Fehlermeldung kommt bei kompelieren?
    Weil ohne Fehlermeldungen können wir nix anfangen und nicht richtig helfen, sondern nur raten.

    Hast du die Datei winsock.h vor mysql.h includiert???
    Hast du die libmysql.lib ins BCB Format konventiert?

    erm... bekomme folgende fehlermeldung

    Info :Building...
    Info :Linking C:\mysql\lib\opt\libmysql.dll
    Info :Transferring to C:\BC5\BIN\implib.exe @C:\DOKUME1\ADMINI1\LOKALE~1\Temp\RSP0.$$$
    Info :Compiling C:\Dokumente und Einstellungen\Administrator\Desktop\proj.c
    Error: MYSQL.H(57,23):Unable to open include file 'mysql_com.h'
    Error: MYSQL.H(58,23):Unable to open include file 'mysql_version.h'
    Error: MYSQL.H(97,27):Too many types in declaration
    Error: MYSQL.H(109,38):Unable to open include file 'my_alloc.h'
    Error: MYSQL.H(115,17):Declaration missing ;
    Error: MYSQL.H(167,11):Declaration missing ;
    Error: MYSQL.H(173,23):Declaration missing ;
    Error: MYSQL.H(214,23):Declaration missing ;
    Error: MYSQL.H(234,10):Declaration missing ;
    Warn : proj.c(11,13):Possible use of 'dbHandle' before definition

    und so sieht die source aus:

    #include <stdio.h>
    #include "c:\\mysql\\include\\mysql.h"
    
    /* prototypes */
    int main(void);
    
    int main(void)
    {
      MYSQL *dbHandle;
    
      dbHandle = mysql_init(dbHandle);
      dbHandle = mysql_real_connect(dbHandle,
            "localhost",   /* on what host */
            "arnold",      /* the user */
            0,             /* no password */
            "test_arnold", /* the database */
            0,             /* don't change the port number */
            0,             /* don't change the UNIX socket */
            0);            /* client flag */
    
      /* at last close the connection */
      mysql_close(dbHandle);
    
      return 0;
    }
    

    und wie konvertiere ich die .lib in das format?
    und was muss ich dann machen *confused*



  • Mysql.h bindet weitere Dateien ein, deshalb einen Suchpfad auf das mysql/include-Verzeichnis setzen.

    Rob'



  • #include <stdio.h>
    #include <winsock.h>
    #include "c:\mysql\include\mysql.h"
    
    /* prototypes */
    
    int main(int argc, char* argv[])
    {
      MYSQL *dbHandle;
    
      dbHandle = mysql_init(NULL);
      dbHandle = mysql_real_connect(dbHandle,
            "localhost",   /* on what host */
            "arnold",      /* the user */
            "",             /* no password */
            "test_arnold", /* the database */
            0,             /* don't change the port number */
            0,             /* don't change the UNIX socket */
            0);            /* client flag */
    
      /* at last close the connection */
      mysql_close(dbHandle);
    
      return 0;
    }
    

    Du mußt dann den include Path noch setzen für die anderen *.h von mysql-source.
    Weil er die ja nicht finden kann..

    mit implib geht das...



  • Rob' schrieb:

    Mysql.h bindet weitere Dateien ein, deshalb einen Suchpfad auf das mysql/include-Verzeichnis setzen.

    Rob'

    wie setze ich einen suchpfad?



  • also ich habs jetzt soweit geschafft, dass das compilieren ohne probleme läuft... nun muss ich nur noch die dlls einbinden, doch da scheitere ich... könnt ihr mir da nen paar hinweise zu geben und wie ich die einbinde und vor allem wo?
    und noch welches format (.dll, .lib) ich weiss es nämclih nich... wäre für hilfen echt dankbar...

    danke
    Q



  • die .dll muß da liegen wo die exe datei ist.

    eine datei .lib mußt du einbinden, wie ich sagte mußt du die konventieren zum Borland .lib

    Wie du ne lieb eibindest mit dem bcc5.5 mußt du in der Hilfe schauen, die dabei ist. Weil ich lange mit dem nicht gearbeitet habe.
    Tip: ilink32.exe ist für das linken zu ständig, dazu muß du mal in der Help nachschauen. Lerne bitte auch mal in der Hilfe nach zu schauen....



  • Die libMySQL.dll muß nicht im gleichen Verzeichnis wie die .exe sein. Sie darf sich auch im Windows- bzw. im Systemverzeichnis befinden.

    Rob'



  • Rob' schrieb:

    Die libMySQL.dll muß nicht im gleichen Verzeichnis wie die .exe sein. Sie darf sich auch im Windows- bzw. im Systemverzeichnis befinden.

    Rob'

    Wie ich schon bereits gesagt hatte.Ins Windows- bzw. im Systemverzeichnis rate ich immer ab. Weil sonst wird die meistens schon von windows geladen.
    Und programme sollten immer die Dateien zusammen halten und nicht teilen.



  • danke für eure hilfen.
    ich habs letztendlich mit eclipse und gcc gemacht.
    war zwarn bisls aufwendig, aber jetzt gehts 🙂

    thx trotzdem

    greetz
    Q


Anmelden zum Antworten