[C++/MySQL] Problemen Linker Borland 6.0

Pagina: 1
Acties:

  • 845
  • Registratie: September 2001
  • Laatst online: 04-05 10:43
Na wat speurwerk op internet ben ik aan het proberen een simpel programmatje C++ programmatje te maken wat een verbinding heeft met mijn MySQL servertje op het lokale netwerk. Ergens op dit forum heb ik gelezen dat je gewoon de C API kan gebruiken die bij de server geleverd wordt.

Door wat voorbeelden bij elkaar te rapen ben ik op het volgende progammatje gekomen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//---------------------------------------------------------------------------

#pragma hdrstop
#include "mysql.h"
#include <conio.h>
#include <iostream.h>
#include <stdio.h>

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
MYSQL mysql;
MYSQL_RES *result;

mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
if (!mysql_real_connect(&mysql,"10.0.0.1","Aagtelan","******","Aagtelan",0,NULL,0))
{
    fprintf(stderr, "Failed to connect to database: Error: %s\n",
          mysql_error(&mysql));
}

if (mysql_query(&mysql,"SELECT * FROM Producten_Bierpot")) {
        MYSQL_ROW row;
        unsigned int num_fields;
        unsigned int i;
        result = mysql_store_result(&mysql);
        num_fields = mysql_num_fields(result);
        while (row = mysql_fetch_row(result))
        {
           unsigned long *lengths;
           lengths = mysql_fetch_lengths(result);
           for(i = 0; i < num_fields; i++)
           {
               printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL");
           }
           printf("\n");
        }
}

getch();
return 0;
}
//---------------------------------------------------------------------------


Bij het compilen krijg ik de volgende foutmelding:

"[Linker Error] Unresolved external 'mysql_init' referenced from C:\MIJN DOCUMENTEN\MYSQL_TEST\UNIT1.OBJ"

hierna volgen nog 8 soortgelijke fouten voor de andere mysql functies

Heeft iemand een idee waar dit aan ligt en wat ik eraan kan doen?

[ Voor 7% gewijzigd door 845 op 06-04-2003 14:27 ]


  • klinz
  • Registratie: Maart 2002
  • Laatst online: 07-03 16:48

klinz

weet van NIETS

Blijkbaar link je de mysql library niet mee. Heb je die wel?

  • 845
  • Registratie: September 2001
  • Laatst online: 04-05 10:43
Voor zover ik weet heb ik die, ik heb de bestanden uit de lib directory en uit de include directory van de server naar de gelijke directory op mijn systeem gekopieerd

  • klinz
  • Registratie: Maart 2002
  • Laatst online: 07-03 16:48

klinz

weet van NIETS

Dan kan het ook zijn dat je met "C" convention moet linken. Als het goed is staat er in mysql.h iets van
code:
1
2
3
4
5
6
7
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif

Als dit er niet staat en je wilt niet aan mysql.h komen kun je het om het include directive zetten.
code:
1
2
3
4
5
6
7
8
#pragma hdrstop
extern "C" {
#include "mysql.h"
}
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
...

[ Voor 10% gewijzigd door klinz op 06-04-2003 19:37 . Reden: accolade op verkeerde plaats ]


  • 845
  • Registratie: September 2001
  • Laatst online: 04-05 10:43
iostream.h is niet extern in C te linken, dit is specifiek een C++ header. Maar de restlinken helpt ook niet.
Ook heb ik al gezocht naar de verschillende library en geprobeerd deze te linken, dit is ook niet gelukt.

  • klinz
  • Registratie: Maart 2002
  • Laatst online: 07-03 16:48

klinz

weet van NIETS

Ik had per abuis de accolade op de verkeerde plaats gezet. Deze moest natuurlijk alleen om de mysql header.

  • AaroN
  • Registratie: Februari 2001
  • Laatst online: 16-08-2023

AaroN

JayGTeam (213177)

845 schreef op 06 April 2003 @ 14:45:
Voor zover ik weet heb ik die, ik heb de bestanden uit de lib directory en uit de include directory van de server naar de gelijke directory op mijn systeem gekopieerd
Je moet hem ook nog bij je "project settings" toevoegen bij het tabblad link en dan achter de laatste lib bij Object/library modules "mysql.lib" oid toevoegen.

JayGTeam (213177)


  • robbertb
  • Registratie: September 2000
  • Niet online

robbertb

winter

AaroN schreef op 06 april 2003 @ 19:53:
[...]

Je moet hem ook nog bij je "project settings" toevoegen bij het tabblad link en dan achter de laatste lib bij Object/library modules "mysql.lib" oid toevoegen.
Ik heb nu hetzelfde probleem...
Hoe is het nou opgelost?
Ik kom niet bij dat tabblad waar jij het over hebt.. hoe kom je daar? en lost dat echt het probleem op?
Pagina: 1