C++ a MySql – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C++ a MySql – C / C++ – Fórum – Programujte.comC++ a MySql – C / C++ – Fórum – Programujte.com

 

Vlákno bylo úspěšně vloženo.
Pokud sám přijdeš na řešení, nezapomeň ho sem přidat!
ondra
~ Anonymní uživatel
244 příspěvků
13. 5. 2013   #1
-
0
-

Snažím se propojit program v c++ s MySql, ale bohužel jsem ztroskotal hned na začatku

u #include <mysql.h>

Visual Studio hlásí, že taková knihovna neexituje. Poradí někdo?

Nahlásit jako SPAM
IP: 93.153.126.–
ingiraxo+15
Grafoman
14. 5. 2013   #2
-
0
-

musíš si stáhnout dev verzi mysql, která obsahuje jak include tak libs, pokud to nenajdeš, tak to musíš skompilovat (tak jsem to dělal v Qt)

Nahlásit jako SPAM
IP: 93.90.162.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ondra
~ Anonymní uživatel
244 příspěvků
15. 5. 2013   #3
-
0
-

#2 ingiraxo
A co když pak budu chtít spustit tento program na jiném počítači, Mám na mysli pouze exe soubor, který dám kamarádovi. Bude fungovat ta část kódu která vyžaduje<mysql.h> ? nebo si bude muset stahnout dev verzi mysql taky?

Nahlásit jako SPAM
IP: 2001:718:1001:110:ec34:3c...–
Thew0
Newbie
15. 5. 2013   #4
-
0
-

#3 ondra
K svojmu exe súboru pribalíš libmysql.dll, ktorú nájdeš v adresári lib. Vo Visual Studiu si nastavíš cesty približne takto (umiestnenie C:\Program Files\MySQL\MySQL Server 5.6 sa môže v tvojom prípade líšiť):

Pre include súbory:
C:\Program Files\MySQL\MySQL Server 5.6\include

Pre lib súbory:
C:\Program Files\MySQL\MySQL Server 5.6\lib

Potom vo vlastnostiach projektu (Properties > Linker > Input > Additional Dependencies) pridáš libmysql.lib. A  z adresára lib ešte potrebuješ libmysql.dll, ktorú skopíruješ ku svojmu exe súboru.

Nahlásit jako SPAM
IP: 195.168.209.–
Get off the cross, we need the wood
ondra
~ Anonymní uživatel
244 příspěvků
22. 5. 2013   #5
-
0
-

Nemáte prosímvás někdo link na stažení mysql 5.1. ? pořád to nemůžu rozjet protože mě visual studio hlásí chybu ve zdrojovém kódu v souborou mysql_com.h který je součástí mysql 5.1.

Nahlásit jako SPAM
IP: 79.127.196.–
ondra
~ Anonymní uživatel
244 příspěvků
22. 5. 2013   #6
-
0
-

#5 ondra
tak jsem to vyřešil řádkem :
#include <my_global.h>

Nahlásit jako SPAM
IP: 79.127.196.–
ondra
~ Anonymní uživatel
244 příspěvků
22. 5. 2013   #7
-
0
-

Přesto ještě potřebuju jednu radu. Kompilace proběhne úspěšně, ale pokud program chcci sputtit vyhodí to tuto chybu:

The program '[1480] MYSQL.exe: Native' has exited with code -1073741701 (0xc000007b).

když dám do mainu jenom toto MYSQL mySQL; tak se to ještě sputtí ,ale pokud tam dám třeba if (mysql_init(&mySQL)) tak už to vyhodí tu chybu.

Nevíte čím by to mohlo být

Nahlásit jako SPAM
IP: 79.127.196.–
Thew0
Newbie
22. 5. 2013   #8
-
0
-

#7 ondra
Mohol by si sem skopírovať ten zdrojový kód svojho programu?

Nahlásit jako SPAM
IP: 195.168.209.–
Get off the cross, we need the wood
ondra
~ Anonymní uživatel
244 příspěvků
22. 5. 2013   #9
-
0
-

#include "stdafx.h"
#include <iostream>
#include <mysql.h>
#include <my_global.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
cout << "ahoj" <<endl;
  MYSQL *connect;
    connect = mysql_init(NULL);
system("pause");
return 0;
}

Nahlásit jako SPAM
IP: 79.127.196.–
ondra
~ Anonymní uživatel
244 příspěvků
22. 5. 2013   #10
-
0
-

pardon, vložil jsem špatný kód.

#include "stdafx.h"
#include <my_global.h>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <mysql.h>


using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
cout << "ahoj" <<endl;
MYSQL *connect;
connect = mysql_init(NULL);

system("pause");
return 0;
}

pokročil jsem kousek dál a vyhazuje to zase jinou chybu:
>c:\users\ondra\documents\visual studio 2010\Projects\DatabazeCode\Debug\DatabazeCode.exe : fatal error LNK1120: 1 unresolved externals

Nahlásit jako SPAM
IP: 79.127.196.–
ondra
~ Anonymní uživatel
244 příspěvků
22. 5. 2013   #11
-
0
-

+ někdy to ukáže taky toto: DatabazeCode.obj : error LNK2019: unresolved external symbol _mysql_init@4 referenced in function _wmain

Nahlásit jako SPAM
IP: 79.127.196.–
ondra
~ Anonymní uživatel
244 příspěvků
22. 5. 2013   #12
-
0
-

Vyzkoušel jsem stahnout už asi 10 verzí mysql ve 32bitové i 64 bitové verzi ale nic nepomohlo. fakt si už nevím rady. Navíc jsem postupoval podle dokumentace, takže mám nastaveno vše správně

Nahlásit jako SPAM
IP: 79.127.196.–
ondra
~ Anonymní uživatel
244 příspěvků
22. 5. 2013   #13
-
0
-

přepnul jsem Output na Debug a objevill jsem toto:

'DatabazeCode.exe': Loaded 'C:\Users\Ondra\Documents\Visual Studio 2010\Projects\DatabazeCode\Debug\DatabazeCode.exe', Symbols loaded.
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Symbols loaded.
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded.
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\apphelp.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\AppPatch\AcLayers.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\sspicli.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\rpcrt4.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\cryptbase.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\sechost.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\user32.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\lpk.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\usp10.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\shell32.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\shlwapi.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\oleaut32.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\userenv.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\profapi.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\winspool.drv', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\mpr.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\imm32.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'C:\Windows\SysWOW64\msctf.dll', Cannot find or open the PDB file
'DatabazeCode.exe': Loaded 'ImageAtBase0x4ab70000', Loading disabled by Include/Exclude setting.
'DatabazeCode.exe': Unloaded 'ImageAtBase0x4ab70000'
The program '[5420] DatabazeCode.exe: Native' has exited with code 0 (0x0).


dll soubory na daném místě existují

Nahlásit jako SPAM
IP: 79.127.196.–
Thew0
Newbie
23. 5. 2013   #14
-
0
-

#13 ondra
Tak sa zdá, že si si nainštaloval 64 bitovú verziu MySQL. To je OK ak máš 64 bitový Windows, problém je, že include a lib súbory sú taktiež pre 64 bitové aplikácie, takže si musíš stiahnuť 32 bitové.

Choď na http://dev.mysql.com/downloads/mysql/ a stiahni si Windows (x86, 32-bit), ZIP Archive. Potom si zisti, kde sa ti nainštaloval MySQL server, napr.:
C:\Program Files\MySQL\MySQL Server 5.6\
Vytvor tam podadresár "x86" a skopíruj doň z toho ZIP súboru dva priečinky, include a lib, takže to bude vzerať takto:
C:\Program Files\MySQL\MySQL Server 5.6\
  + x86
    + include
    + lib
Potom si vo Visual Studiu uprav cesty include a lib na tie nové priečinky (...\x86\include a ...\x86\lib) a skús skompilovať tento program:

#include <cstdio>
#include <WinSock2.h>
#include <Windows.h>
#include <mysql.h>

#pragma comment(lib, "libmysql.lib")

int main()
{
  MYSQL mysql;
  if (mysql_init(&mysql))
  {
    if (mysql_real_connect(
          &mysql, "localhost", "root", "root", 0, 3306, 0, 0))
      printf_s("Spojene!\n");
    else
      printf_s("Nespojene!\n");
    mysql_close(&mysql);
  }
  else
    printf_s("Chyba!\n");
  
  system("PAUSE");
  return 0;
}

Pokiaľ si si nastavil iné heslo pre roota tak ho zmeň vo funkcii mysql_real_connect (4. parameter). K zostavenému exe skopíruj libmysql.dll z ...\x86\lib\ a spusti. Ak sa program nespustí, resp. nebudeš vidieť žiadny výstup tak skontroluje, či si skopíroval správnu libmysql.dll a či sa nachádza pri exe súbore. Ak to spustíš tak na 99,99% uvidíš hlášku buď Spojene alebo Nespojene. Ak to bude ten druhý prípad tak skontroluj, či ti beží MySQL služba a ak áno tak skontroluj, či je správne prihlasovacie meno a heslo, taktiež či je správny port (3306 je štandard ak si ho manuálne nezmenil).

Nahlásit jako SPAM
IP: 195.168.209.–
Get off the cross, we need the wood
ondra
~ Anonymní uživatel
244 příspěvků
23. 5. 2013   #15
-
0
-

jsi pro mě bůh :D děkuju děkuju, děkuju. Nechápu jak je to možné, protože jsem tuto verzi už stahlou a nešlo to, ale zase je pravda že jsem neměl tyto include
#include <WinSock2.h>
#include <Windows.h>

ale teď to opravdu funguje :D nastotisickrát dík :-)

Nahlásit jako SPAM
IP: 79.127.196.–
Thew0
Newbie
23. 5. 2013   #16
-
0
-

#15 ondra
Som rád že ti to ide. Tie WinSock2.h a Windows.h sú tam len preto, lebo libmysql sa pripája na server pomocou socketu a ten je vo Windowse definovaný ako SOCKET, bez WinSock2.h by ti to hlásilo chybu pri kompilácii.

V tvojom prípade robilo problém to, že Oracle trochu nešťastne rieši distribúciu MySQL, pretože ak nainštaluješ 64 bitovú verziu tak ti chýbajú 32 bitové lib súbory. Čiže k 32 bitovému programu si pripájal 64 bitové libmysql.lib, preto to hlásenie "LNK2019: unresolved external symbol _mysql_init@4 ..."

Nahlásit jako SPAM
IP: 195.168.209.–
Get off the cross, we need the wood
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

C a mysql — založil manor

Mysql.h — založil Zelenáč

QT a MySQL — založil fnenks

VB a MYSQL — založil Adolf01

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý