Slettet bruger 
			 
					
				29. juli 2007 - 23:10 
												Der er
									17  kommentarer													og 					1  løsning									 
									
		 
		
			
Mysql Compiling fejl 
			Jeg bruger en kode jeg har fundet her på Eksperten (lavet af arne_v). Jeg har dog også brugt andre koder, som alle giver samme fejl. Koden ser således ud: #include <windows.h> #include <iostream> #include <mysql.h> #include <stdio.h> #include <stdlib.h> int main() {     MYSQL *handle;     MYSQL_RES *result;     MYSQL_ROW row;     int nfields;     int *l;     int i;     handle= mysql_init(NULL);     if(handle == NULL)     {         printf("MySQL error: %s", mysql_error(handle));         exit(1);     }     if(!mysql_real_connect(handle, "localhost", "root", "lol", "bjarke", 0, NULL, 0))     {         printf("MySQL error: %s", mysql_error(handle));         exit(1);     }     mysql_query(handle, "SELECT * FROM test");     result = mysql_store_result(handle);     nfields = mysql_num_fields(result);     while ((row = mysql_fetch_row(result))) {         l = (int *)mysql_fetch_lengths(result);         for (i=0; i<nfields; i++) {             printf(" %.*s", l[i], row[i] ? row[i] : "NULL");         }         printf("\n");     }     mysql_free_result(result);     mysql_close(handle);     return 0; } Det min compiler så svare er: example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_close@4 example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_free_result@4 example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_fetch_lengths@4 example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_fetch_row@4 example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_num_fields@4 example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_store_result@4 example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_query@8 example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_real_connect@32 example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_error@4 example1_mysql.obj : error LNK2001: unresolved external symbol _mysql_init@4 Debug/example1_mysql.exe : fatal error LNK1120: 10 unresolved externals Error executing link.exe. example1_mysql.exe - 11 error(s), 0 warning(s) Håber i kan hjælpe //Bjarke
					
		
	 
Annonceindlæg tema 
 
Forsvar & beredskab 
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
 
 
	
		
		
			Du mangler at linked med mysql library.
		
		
	 
	
		
								
				 
				Slettet bruger 
			 
					
				29. juli 2007 - 23:43  
				#2 
						
		 
		
			Hvem hvor hvad og hvordan :)?
		
		
	 
	
		
		
			Hvilken compiler/IDE bruger du ?
		
		
	 
	
		
		
			Udfra fejlen gætter jeg på at det er Microsoft Visual ... Så skal du bare link mod libmysql.lib som kommer med MySQL (plejer at ligge i lib\opt under MySQL).
		
		
	 
	
		
								
				 
				Slettet bruger 
			 
					
				29. juli 2007 - 23:48  
				#5 
						
		 
		
			Glem det.. har fundet ud af det :) Vil tilgengæld lige spørge hvordan jeg får et specifik frem. Noget i den dur? printf(row[feltnavn]); Mvh Bjarke - Der ikke rigtig ved så meget om C++, men ikke kan tage sig sammen til at lære det før han våger sig ud i mysql :)
		
		
	 
	
	
	
		
								
				 
				Slettet bruger 
			 
					
				29. juli 2007 - 23:49  
				#6 
						
		 
		
			Du er alt for hurtigt arne :) *Vil til gengæld lige spørge hvordan jeg får et specifik felt frem.
		
		
	 
	
	
		
								
				 
				Slettet bruger 
			 
					
				30. juli 2007 - 00:13  
				#8 
						
		 
		
			hmm når jeg sætter en MYSQL_FIELD *field; ind så underkender den pludeselig de andre variabler :S C:\C++\example2_mysql.cpp(11) : warning C4101: 'row' : unreferenced local variable C:\C++\example2_mysql.cpp(14) : warning C4101: 'i' : unreferenced local variable C:\C++\example2_mysql.cpp(13) : warning C4101: 'l' : unreferenced local variable     MYSQL_ROW row;     MYSQL_FIELD *field;     int *l;     int i;
		
		
	 
	
		
								
				 
				Slettet bruger 
			 
					
				30. juli 2007 - 00:15  
				#9 
						
		 
		
			Nej nu er den der ikke :P.. Nå. post et svar så får du points :) Men ville være cool hvis du ville kigge lidt på den hvis jeg har spm.. :) Mvh Bjarke
		
		
	 
	
		
								
					
				30. juli 2007 - 00:19  
				#10 
			 				 
						
		 
		
			Selvfølgelig.
		
		
	 
	
		
								
				 
				Slettet bruger 
			 
					
				30. juli 2007 - 00:26  
				#11 
						
		 
		
			hehe jeg tror jeg giver op med det der specifik felt navn halløj.. Selv ikke google kan hjælpe mig ;).. Det er bare underligt at skulle bruge et Row nr, når man er vant til andet igennem mange år med asp :)
		
		
	 
	
		
								
				 
				Slettet bruger 
			 
					
				30. juli 2007 - 01:10  
				#12 
						
		 
		
			Nu har jeg roddet mig ud i noget andet... Du skal bare sige til hvis jeg skal oprette seperat spørgsmål... Jeg skal lave noget replace af mit data.. char line = replace(row[2], "Hej", "Goddag");             cout << line << endl; Jeg får denne fejl.. Og ved ikke rigtig hvad jeg skal gøre C:\C++\Mysql.cpp(57) : error C2440: 'initializing' : cannot convert from 'void' to 'char'         Expressions of type void cannot be converted to other types Error executing cl.exe.
		
		
	 
	
		
								
					
				30. juli 2007 - 01:43  
				#13 
			 				 
						
		 
		
			Jeg ved ikke hvad det er for en replace funktion. Men et gæt ville være: replace(row[2], "Hej", "Goddag");            char *line = row[2]; cout << line << endl;
		
		
	 
	
		
								
					
				30. juli 2007 - 01:44  
				#14 
			 				 
						
		 
		
			Eller måske bedre: char *line = new char[strlen(row[2]) + 1]; strcpy(line, row[2]); replace(line, "Hej", "Goddag");          cout << line << endl;
		
		
	 
	
		
								
					
				30. juli 2007 - 01:53  
				#15 
			 				 
						
		 
		
			Kode der udskriver felt navne: #include <stdio.h> #include <stdlib.h> #include "mysql.h" int main() {     MYSQL *handle;     MYSQL_RES *result;     MYSQL_ROW row;     int nfields;     int *l;     int i;     handle= mysql_init(NULL);     if(handle == NULL)     {         printf("MySQL error: %s", mysql_error(handle));         exit(1);     }     if(!mysql_real_connect(handle, "localhost", "root", "", "Test", 0, NULL, 0))     {         printf("MySQL error: %s", mysql_error(handle));         exit(1);     }     mysql_query(handle, "SELECT * FROM t1");     result = mysql_store_result(handle);     nfields = mysql_num_fields(result);     /* */     for(i=0; i<nfields; i++) {         printf(" %s", mysql_fetch_field_direct(result, i)->name);     }     printf("\n");     /* */     while ((row = mysql_fetch_row(result))) {         l = (int *)mysql_fetch_lengths(result);         for (i=0; i<nfields; i++) {             printf(" %.*s", row[i] ? l[i] : 4, row[i] ? row[i] : "NULL");         }         printf("\n");     }     mysql_free_result(result);     mysql_close(handle);     return 0; } Hvis du vil bruge feltnavne (og du bruger C++), så kan du gemme navn til index i en STL map og slå op med den i row.
		
		
	 
	
		
								
				 
				Slettet bruger 
			 
					
				30. juli 2007 - 02:00  
				#16 
						
		 
		
			Tror jeg formulerede mig forkert ;) Jeg vil ikke have feltnavnene, jeg ville kalde data frem ved hjælp af felt navne. I asp ville dette se således ud: rs = conn.execute("Select * from Tabel") response.write rs("Navn") :) BTW Så virkede din char løsning, helt perfekt.. Takker Mvh Bjarke
		
		
	 
	
		
								
				 
				Slettet bruger 
			 
					
				30. juli 2007 - 02:17  
				#17 
						
		 
		
			Men det er lige meget :) Det med row nr er faktisk også ret sejt :) Takker for hjælpen, du skal da have noget karma med på vejen :)
		
		
	 
	
		
								
					
				30. juli 2007 - 02:25  
				#18 
			 				 
						
		 
		
			Jeg vidste godt hvad du mente med navn. Det kan ikke laves helt så nemt i C++, men som jeg antydere i de sidste 2 linier, så kan man lave noget. Her er et mere uddybet eksempel: #include <cstdio> #include <cstdlib> #include <iostream> #include <string> #include <map> using namespace std; #include "mysql.h" int main() {     MYSQL *handle= mysql_init(NULL);     if(handle == NULL)     {         cerr << "MySQL error: " << mysql_error(handle) << endl;         exit(1);     }     if(!mysql_real_connect(handle, "localhost", "root", "", "Test", 0, NULL, 0))     {         cerr << "MySQL error: " << mysql_error(handle) << endl;         exit(1);     }     mysql_query(handle, "SELECT * FROM t1");     MYSQL_RES *result = mysql_store_result(handle);     int nfields = mysql_num_fields(result);     /* */     map<string,int> name2index;     for(int i=0; i<nfields; i++) {        name2index[(mysql_fetch_field_direct(result, i))->name] = i;     }     /* */     MYSQL_ROW row;     char *buf = new char[256];     while ((row = mysql_fetch_row(result))) {         int *l = (int *)mysql_fetch_lengths(result);         // print F1         strncpy(buf,row[name2index["F1"]] ? row[name2index["F1"]] : "NULL",row[name2index["F1"]] ? l[name2index["F1"]] : 4);         buf[row[name2index["F1"]] ? l[name2index["F1"]] : 4] = '\0';         cout << " " << buf;         // print F2         strncpy(buf,row[name2index["F2"]] ? row[name2index["F2"]] : "NULL",row[name2index["F2"]] ? l[name2index["F2"]] : 4);         buf[row[name2index["F2"]] ? l[name2index["F2"]] : 4] = '\0';         cout << " " << buf;         cout << endl;     }     delete[] buf;     mysql_free_result(result);     mysql_close(handle);     return 0; }
		
		
	 
	
		
	
		
		
		
			
			Kurser inden for grundlæggende programmering