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

C Mysql Připojení – C / C++ – Fórum – Programujte.comC Mysql Připojení – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
TheDejv
~ Anonymní uživatel
15 příspěvků
27. 11. 2015   #1
-
0
-

Zdravím

Snažím se vytvořit program, který se bude připojovat do MySql a tahat data.

Důležité je, že se mi nedaří includovat lib. knihovny. Toto je můj kód, napsaný v CodeBlocks ve Windows 10

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <mysql.h>
int main()
{
    printf("MySQL verze: %s\n", mysql_get_client_info());
    return 0;
}

Mám stažený a nainstalovaný MySQL Connector/C

V Project build options -> Linker settings -> Link libraries mám liknutou libmysql.lib (D:\vyvoj\C Vyvoj\includeLibs\libmysql.lib)

V Search directories -> Linker mám přidanou složku, ve které se nachází knihovna libmysql.lib a libmysql.dll (D:\vyvoj\C Vyvoj\includeLibs)

bohužel mi to stále vypisuje tuto hlášku: 

D:\vyvoj\C Vyvoj\MySql1\main.c|4|fatal error: mysql.h: No such file or directory|

Pročetl sem různá fóra a zkoušel sem i do adresáře Windows a Windows/system32 přidat libmysql.dll. Tuto knihovnu jsem přidal i do adresáře se samotným programem, ale stále stejný výsledek.

Nahlásit jako SPAM
IP: 213.220.231.–
Reklama
Reklama
KIIV+42
God of flame
27. 11. 2015   #2
-
0
-

#1 TheDejv
Nastavil jsi si taky include directory, kde mas mysql.h?

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
TheDejv
~ Anonymní uživatel
15 příspěvků
27. 11. 2015   #3
-
0
-

Samozřejmě, ale potom mi to napíše toto: 

undefined reference to `mysql_get_client_info@0'
Nahlásit jako SPAM
IP: 213.220.231.–
KIIV+42
God of flame
27. 11. 2015   #4
-
0
-

me se to teda zkompiluje (spadne to az po spusteni :D)

Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
TheDejv
~ Anonymní uživatel
15 příspěvků
27. 11. 2015   #5
-
0
-

To se mi také párkrát povedlo, ale usoudil sem že mám něco špatně includováno tak sem začal znova :(

Nahlásit jako SPAM
IP: 213.220.231.–
TheDejv
~ Anonymní uživatel
15 příspěvků
27. 11. 2015   #6
-
0
-

Nastavil sem include všeho nezbytného přímo ze složky kde je nainstalován MySql C Connector

a Build Log vypadá následovně: 

mingw32-gcc.exe -Wall -g -I"C:\Program Files\MySQL\MySQL Connector C 6.1\include" -c "D:\vyvoj\C Vyvoj\MySql1\main.c" -o obj\Debug\main.o
mingw32-g++.exe -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -o bin\Debug\MySql1.exe obj\Debug\main.o   "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\libmysql.lib"
obj\Debug\main.o: In function `main':
D:/vyvoj/C Vyvoj/MySql1/main.c:8: undefined reference to `mysql_get_client_info@0'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 0 warning(s) (0 minute(s), 0 second(s))

Tak opravdu nevím co dělám špatně

Nahlásit jako SPAM
IP: 213.220.231.–
KIIV+42
God of flame
27. 11. 2015   #7
-
0
-

A pro co ti to kompiluje? 32bit nebo pro 64b? Ten connector musi byt taky odpovidajici 32/64bit.

Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
TheDejv
~ Anonymní uživatel
15 příspěvků
27. 11. 2015   #8
-
0
-

Aha, tak tam byl zakopanej pes. Díky

Ale naskýtá se další problém. Aplikace po spuštění spadne.

Process terminated with status -1073741510 (0 minute(s), 5 second(s))
Nahlásit jako SPAM
IP: 213.220.231.–
hlucheucho+10
Posthunter
27. 11. 2015   #9
-
+1
-
Zajímavé
Kit +

K databázi je třeba se nejdřív připojit a pak teprve lze od ní něco chtít. V dokumentaci MySQL je to dobře popsaný s fungujícími příklady.

hu

Nahlásit jako SPAM
IP: 193.86.81.–
TheDejv
~ Anonymní uživatel
15 příspěvků
27. 11. 2015   #10
-
0
-

I když vytvořím připojení k databázi tak program stejně spadne se stejnou hláškou.

Nahlásit jako SPAM
IP: 213.220.231.–
Kit+11
Guru
27. 11. 2015   #11
-
0
-

#10 TheDejv
Zřejmě při tom připojení děláš nějakou chybu.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
TheDejv
~ Anonymní uživatel
15 příspěvků
27. 11. 2015   #12
-
0
-

Takto mám současný kód:

#include <stdio.h>
#include <stdlib.h>
#include <winsock.h>
#include <windows.h>
#include <mysql.h>

int main()
{
    MYSQL_RES *result;
    MYSQL_ROW row;
    MYSQL *connection, mysql;
    int state;

    mysql_init(&mysql);
    connection = mysql_real_connect(&mysql,"192.168.1.13", "user1", "heslo1","table1", 0, 0, 0);
    if (connection == NULL) {
    /* print the error message */
        printf(mysql_error(&mysql));
        return 1;
    }
    state = mysql_query(connection, "SELECT username FROM test WHERE id = 1");
    if(state != 0 ) {
        printf("ERROR");
        return 1;
    }
    result = mysql_store_result(connection);
    while( (row = mysql_fetch_row(result)) != NULL ) {
        printf("username %s\n", (row[0] ? row[0] : "NULL"));
    }
    mysql_free_result(result);
    mysql_close(connection);
    return 0;
}

Opravdu už nevím co dělám špatně.

Nahlásit jako SPAM
IP: 213.220.231.–
TheDejv
~ Anonymní uživatel
15 příspěvků
27. 11. 2015   #13
-
0
-

* místo "table1" je "db1"

connection = mysql_real_connect(&mysql,"192.168.1.13", "user1", "heslo1","db1", 0, 0, 0);
Nahlásit jako SPAM
IP: 213.220.231.–
Kit+11
Guru
27. 11. 2015   #14
-
0
-

#13 TheDejv
Sedmý parametr nemá být 0, ale NULL.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:3c2d:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
TheDejv
~ Anonymní uživatel
15 příspěvků
28. 11. 2015   #15
-
0
-

Stále nic. Zkompiluji, spustím, otevře se command line a nikde ani řádek, tak musím ukončit ručně.

a stále stejná chyba.

Nahlásit jako SPAM
IP: 213.220.231.–
TheDejv
~ Anonymní uživatel
15 příspěvků
28. 11. 2015   #16
-
0
-

Tak tohohle jsem si předtím vůbec nevšiml. při kompilaci to vypíše takovou nenápadnou větu: 

sorry - this program has been built without plugin support

Poradíte mi ?

Nahlásit jako SPAM
IP: 213.220.231.–
TheDejv
~ Anonymní uživatel
15 příspěvků
28. 11. 2015   #17
-
0
-

Tak samotný EXE soubor mi na druhém PC funguje bez problémů, ale tady když EXE soubor spustím tak se nic nestane a vše se mi zasekne.

Nahlásit jako SPAM
IP: 213.220.231.–
TheDejv
~ Anonymní uživatel
15 příspěvků
28. 11. 2015   #18
-
0
-

Problém vyřešen. Stačilo vypnout antivirový program :/

Nahlásit jako SPAM
IP: 213.220.231.–
Kit+11
Guru
28. 11. 2015   #19
-
0
-

#18 TheDejv
Tak tohle by mě nenapadlo, neboť takové šmejdy ve svém PC nevedu už hromadu let.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:4a9:8...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
ondrej39+1
Věrný člen
28. 11. 2015   #20
-
+1
-
Zajímavé
Kit +

#18 TheDejv
Jestli máš nějaký známější antivirový program (Kaspersky, NOD, AVG, Bitdefender), tak věř, že vypnutí antiviru rozhodně není řešením a měl by ses pokusit nalézt řešení jiné. V případě, že bys vydal aplikaci, která ke spuštění vyžaduje vypnutí antivirového programu, si takovou aplikaci asi mnoho lidí nenainstaluje.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
TheDejv
~ Anonymní uživatel
15 příspěvků
28. 11. 2015   #21
-
0
-

Mám avast a dost pochybuju že tento kód 

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("Hello world!\n");
    return 0;
}

je nějak závadný :)

Nahlásit jako SPAM
IP: 213.220.231.–
ondrej39+1
Věrný člen
28. 11. 2015   #22
-
0
-

#21 TheDejv
V tom případě máš nejspíš něco v nepořádku s počítačem. Takové chování není normální.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
hlucheucho+10
Posthunter
29. 11. 2015   #23
-
0
-

Avast je trapná atrapa antivirového software (asi jsem proti němu zaujatý. Věřte, že po špatných zkušenostech)

Avast je planými poplachy pověstný. Zkus program spustit v sandboxu Avastu. Když nezjistí, že program není nebezpečný, hledej v nastavení Avastu. Asi ho máš nastavený přísněji než u nás v práci, kde nejdřív spustí v sandboxu a pak už to jde normálně. Je to otravný, ale na volbu antiviru ve svém zaměstnání nemám vliv. Eset tyhle problémy nemá (mám ho doma na svém PC a žádný planý poplach jsem neměl).

hu

Nahlásit jako SPAM
IP: 193.86.81.–
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, 89 hostů

Podobná vlákna

Připojení k MySQL — založil G0rk1ll

Pripojeni na mysql error — založil bortak

Moderátoři diskuze

 

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