21. august 2003 - 16:20Der er
29 kommentarer og 1 løsning
mysql og Visual Studio .NET C++
Hej eksperter.
Jeg vil gerne kunne komunikere med min mysql database igennem c++ programmer jeg laver vha. Visual Studio.
Jeg har ingen anelse hvordan jeg lige får Visual C++ til at arbejde sammen med mysql. En lille guide til dette ville være lækkert, og måske et par eksempler på queries.
Det lyder da godt at det i hvert fald kan lade sig gøre ;)
Men, jeg kommer nok til at skulle bruge en mere udførlig vejledning. Findes der en guide til hvordan jeg kommer igang med en af løsningerne. Helt fra downloade de rette filer, hvor de skal lægges, og hvad jeg skal include i mit projekt for at det virker.
char* dsn = "TestMSAccess"; char* un = ""; char* pw = ""; char* sqlstr = "SELECT * FROM T1";
int main(int argc, char *argv[]) { SQLHENV Environment; SQLHDBC DataBaseConnect; SQLHSTMT stmt; SQLRETURN stat; stat = SQLAllocEnv(&Environment); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) cerr << "Error in AllocEnv" << endl; stat = SQLAllocConnect(Environment,&DataBaseConnect); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) cerr << "Error in AllocConnect" << endl; stat = SQLConnect(DataBaseConnect, (SQLCHAR *)dsn,strlen(dsn), (SQLCHAR *)un,strlen(un), (SQLCHAR *)pw,strlen(pw)); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) cerr << "Error in Connect" << endl; stat = SQLAllocStmt(DataBaseConnect,&stmt); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) cerr << "Error in AllocStmt" << endl; stat = SQLExecDirect(stmt,(SQLCHAR *)sqlstr,strlen(sqlstr)); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) cerr << "Error in ExecDirect" << endl; int i,il,sl; char s[10]; stat = SQLBindCol(stmt,1,SQL_C_LONG,&i,sizeof(i),(SQLINTEGER *)&il); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) cerr << "Error in BindCol" << endl; stat = SQLBindCol(stmt,2,SQL_C_CHAR,s,sizeof(s),(SQLINTEGER *)&sl); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) cerr << "Error in BindCol" << endl; for(;;) { stat = SQLFetch(stmt); if((stat!=SQL_SUCCESS)&&(stat!=SQL_SUCCESS_WITH_INFO)) break; s[sl] = '\0'; cout << i << " " << s << endl; } SQLFreeStmt(stmt,SQL_DROP); SQLDisconnect(DataBaseConnect); SQLFreeConnect(DataBaseConnect); SQLFreeEnv(Environment); system("PAUSE"); return 0; }
[det er til Access men ODBC er en standard - der er ikke noget Access specifikt i koden, hvis DSN peger på en MySQL database, så vil det også virke med den]
Jeg har prøvet at copy/paste dit mysql C API eksempel ind i et projekt, den kunne selvfølgelig ikke inklude mysql.h. Jeg kan finde en mysql.h i mit mysql bibliotek under include. Skal jeg bare kopiere hele det inklude bibliotek ind i mit projekt, og så skifte #include "mysql.h" ud med #include "include/mysql.h"
Det forsvandt de fejl af, men nye opstod jeg kan ikke lige gennemskue hvad de skyldes.
testprojekt fatal error LNK1120: 10 unresolved externals testprojekt error LNK2019: unresolved external symbol _mysql_free_result@4 referenced in function _main testprojekt error LNK2019: unresolved external symbol _mysql_fetch_lengths@4 referenced in function _main testprojekt error LNK2019: unresolved external symbol _mysql_fetch_row@4 referenced in function _main testprojekt error LNK2019: unresolved external symbol _mysql_num_fields@4 referenced in function _main testprojekt error LNK2019: unresolved external symbol _mysql_store_result@4 referenced in function _main testprojekt error LNK2019: unresolved external symbol _mysql_query@8 referenced in function _main testprojekt error LNK2019: unresolved external symbol _mysql_real_connect@32 referenced in function _main testprojekt error LNK2019: unresolved external symbol _mysql_error@4 referenced in function _main testprojekt error LNK2019: unresolved external symbol _mysql_init@4 referenced in function _main testprojekt error LNK2019: unresolved external symbol _mysql_close@4 referenced in function _main
Til alle jer andre der kommer med input. Mange Tak!, men jeg prøver lige Arnes forslag igennem inden jeg forvirrer mig selv yderligere - Kan ikke overskue så mange ting på en gang ;)
Når jeg nu nærlæser det du skriver (jeg har ikke selv VS.NET) så er projekt/properties/linker/general/additional library directories/ jo nok kunn directoriet
wohooo arne er Gud. Den er fint connected nu, og jeg fik hevet lidt ud af databasen. Så skal jeg til at lege med det, for at lære mere :)
1000 TAK for din tid, tålmodighed og kompetence!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.