shrek999 Napisano Marzec 13, 2008 Zgłoszenie Share Napisano Marzec 13, 2008 witam mam problem, musze napisac aplikacje małą w C która bedzie komunikować się z mysql'em ale problem jest taki ze sciągając przykładoway program gotowy napisany w necie np: #include <mysql/mysql.h> #include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ MYSQL *mysql; MYSQL_RES *res; MYSQL_ROW row; char *query; int t,r; mysql_init(mysql); if (!mysql_real_connect(mysql,"localhost","mysql", "mysql","deneme",0,NULL,0)) { printf( "Error connecting to database: %s\n",mysql_error(mysql)); } else printf("Connected...\n"); query="select * from Deneme"; t=mysql_real_query(mysql,query,(unsigned int) strlen(query)); if (t) { printf("Error making query: %s\n", mysql_error(mysql)); } else printf("Query made...\n"); res=mysql_use_result(mysql); for(r=0;r<=mysql_field_count(mysql);r++){ row=mysql_fetch_row(res); if(row<0) break; for(t=0;t<mysql_num_fields(res);t++){ printf("%s ",row[t]); } printf("\n"); } mysql_close(mysql); return 0; } daje polecenie : cc -Wall api.c sypie mi błędami cc -wall api.c /tmp/ccSrycbN.o: In function `main': api.c:(.text+0x1a): undefined reference to `mysql_init' api.c:(.text+0x5d): undefined reference to `mysql_real_connect' api.c:(.text+0x6c): undefined reference to `mysql_error' api.c:(.text+0xc4): undefined reference to `mysql_real_query' api.c:(.text+0xd8): undefined reference to `mysql_error' api.c:(.text+0x101): undefined reference to `mysql_use_result' api.c:(.text+0x118): undefined reference to `mysql_fetch_row' api.c:(.text+0x151): undefined reference to `mysql_num_fields' api.c:(.text+0x173): undefined reference to `mysql_field_count' api.c:(.text+0x182): undefined reference to `mysql_close' collect2: ld returned 1 exit status wszystkie pakiety jakie mam w systemie związane z mysql'em [shrek@mytob Pulpit]$ rpm -qa|grep mysql mysql-libs-5.0.45-6.fc8 mysql-connector-odbc-3.51.14r248-2.fc8 mysql-test-5.0.45-6.fc8 mod_auth_mysql-3.0.0-5 mysql-bench-5.0.45-6.fc8 mysql++-2.3.2-2.fc8 mysql-5.0.45-6.fc8 mysql-gui-tools-5.0r12-4.fc8 libdbi-dbd-mysql-0.8.2-1.2.fc8 mysql-administrator-5.0r12-4.fc8 mysql-proxy-0.5.1-3.fc8 php-mysql-5.2.4-3 mysql-gui-common-5.0r12-4.fc8 mysql-connector-java-3.1.12-3.fc6 mysql-server-5.0.45-6.fc8 mysql-devel-5.0.45-6.fc8 mysql++-devel-2.3.2-2.fc8 mysql-query-browser-5.0r12-4.fc8 mysql++-manuals-2.3.2-2.fc8 zawartość /usr/libs/mysql [shrek@mytob mysql]# pwd /usr/lib/mysql [shrek@mytob mysql]# ls libdbug.a libmysqlclient_r.so libmystrings.a libheap.a libmysqlclient_r.so.15 libmysys.a libmyisam.a libmysqlclient_r.so.15.0.0 libvio.a libmyisammrg.a libmysqlclient.so mysqlbug libmysqlclient.a libmysqlclient.so.15 mysql_config libmysqlclient_r.a libmysqlclient.so.15.0.0 [root@mytob mysql]# i pytanie dlaczego to sie nie chce kąpilować? do tej pory wszystko klepałem w windozie pod codeblocksem ale teraz musze napisac to pod linuksa. Z góry dziękuje za wszelką pomoc Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
matlas Napisano Marzec 13, 2008 Zgłoszenie Share Napisano Marzec 13, 2008 http://lists.mysql.com/mysql/200178 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
shrek999 Napisano Marzec 21, 2008 Autor Zgłoszenie Share Napisano Marzec 21, 2008 dobrze tamta sprawa załatwiona ale generalnie siedze od tygodnia i nie moge wykminic jak po podlaczeniu sie do bazy wybrac tabele i zapisac do jakiegos pliku, struktury czy czego kolwiek innego zawartość całej kolumny. Jak zbudować query? czy skorzystać z której funkcji ? bede wdzieczny za pomoc. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
matlas Napisano Marzec 22, 2008 Zgłoszenie Share Napisano Marzec 22, 2008 Zobacz to: http://linuxfocus.org/Polish/September2003/article304.shtml to: http://www.geocities.com/jahan.geo/mysql_c_by_example.html i to tez warto jest wszystko wyjasnione: http://www.ods.com.ua/win/eng/db/c_api/toc.html Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
shrek999 Napisano Marzec 22, 2008 Autor Zgłoszenie Share Napisano Marzec 22, 2008 Zobacz to: http://linuxfocus.org/Polish/September2003/article304.shtml to: http://www.geocities.com/jahan.geo/mysql_c_by_example.html i to tez warto jest wszystko wyjasnione: http://www.ods.com.ua/win/eng/db/c_api/toc.html narazie probuje sie oswoic z przykladami... poczytalem poczytalem i teraz jest tak #include <mysql/mysql.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ MYSQL *mysql; MYSQL_RES *res; MYSQL_ROW row; char *query; int t,r; mysql_init(mysql); if (!mysql_real_connect(mysql,"HOST","USER", "PASS","BASE",0,NULL,0)) { printf( "Error connecting to database: %s\n",mysql_error(mysql)); } else printf("Connected...\n"); query="SELECT kolumna FROM tabela"; t=mysql_real_query(mysql,query,strlen(query)); if (t) { printf("Error making query: %s\n", mysql_error(mysql)); } else printf("Query made...\n"); res=mysql_use_result(mysql); /* unsigned long *lengths; unsigned int num_fields; unsigned int i; row = mysql_fetch_row(res); if(row) { num_fields = mysql_num_fields(res); lengths = mysql_fetch_lengths(res); for(i = 0; i < num_fields; i++) { printf("Column %u is %lu bytes in length.\n", i, lengths[i]); } } */ for(r= 0 ; r<= mysql_field_count(mysql) ; r++){ row= mysql_fetch_row(res); if(row< 0) break; for(t= 0 ; t< mysql_num_fields(res) ; t++){ printf("%s ",row[t]); } printf("\n"); } mysql_close(mysql); return 0; } problem jest taki ze przy 3 przejscu przez peetle "for(r= 0 ; r<= mysql_field_count(mysql) ; r++)" program maze po pamieci ;/ robi 2 printfy i mam naruszenie ochrony pamieci. Jakimis prontfami testowymi doszedlem do tego ze to musi byc 3 wywolanie mysql_field_count. Jesli ktos ma jakis patent co z tym zrobic zeby poprawnie program sie wykonywał bede wdzieczny. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się