Vra

Bestaan ​​enige asynchrone verbindings vir Mysql wat binne 'n C- of C++-toepassing gebruik kan word?Ek is op soek na iets wat by 'n ingeprop kan word reaktor patroon in geskryf Boost.Asio.

[Redigeer:] Om 'n sinchrone verbinding in drade te laat loop is nie 'n opsie nie.

Was dit nuttig?

Oplossing

http://forums.mysql.com/read.php?45,183339,183339geniet

Opgedateerde skakel na die oorspronklike artikel wat wys hoe om asynchrone mysql-navrae te doen:

http://jan.kneschke.de/projects/mysql/async-mysql-queries-with-c-api/

Ander wenke

Ek het 'n soortgelyke probleem gehad met 'n heel ander tegnologie:Gedraaide luislang (reaktor-gebaseerde IO) en sqlAlchemy (??).Terwyl ek na 'n oplossing gesoek het, het ek 'n sAsync-projek gevind wat eenvoudig 'n aparte draad vir sqlAlchemy geskep het en dan op versoeke gereageer het.

Aangesien ASIO gebaseer is op laevlak-bedryfstelselkenmerke (soos aio_read() of ReadFileEx() ens.) en 'n OS-vlak reaktor (of proaktor, in Windows se geval), dink ek nie jy het 'n ander kans as om die ' na te boots nie. asynchroniteit' op soortgelyke wyse.

Om 'n sinchrone verbinding in drade te laat loop is nie 'n opsie nie

Dink daaroor:die libmysqlclient / mysqlclient.dll wat jy gebruik maak sinchrone sok-oproepe.Die OS skeduleerder sal korrek oorskakel na 'n ander draad totdat die I/O klaar is, so wat is die verskil?(behalwe dat jy nie 2k drade hiervoor moet maak nie..)

Wysig:mysql_real_connect() ondersteun 'n UNIX-sokparameter.U kan uself kwansuis lees vanaf die mysql-bedienerpoort en slegs met ASIO na daardie UNIX-sok skryf.Soos 'n volmag.

[ Om 'n sinchrone aansluiting in drade te gebruik, is nie 'n opsie om daaroor te dink nie:die libmysqlclient / mysqlclient.dll wat jy gebruik maak sinchrone sok-oproepe.Die OS skeduleerder sal korrek oorskakel na 'n ander draad totdat die I/O klaar is]

Dit pla my!- die 'nog 'n draad' kan net so maklik 'n tweede sinchronisasie wees.verbinding met mysql, en moet deur mysql hanteer word net soos dit heeltemal 'n ander kliënt sou doen?My gevoel is dat dit moet werk met behulp van verskeie drade.

MySQL Connector/C++ is 'n C++-implementering van JDBC 4.0

Die verwysingskliënte wat MySQL Connector/C++ gebruik, is:- OpenOffice - MySQL Workbench

Leer meer: http://forums.mysql.com/read.php?167,221298

Daar is 'n projek genaamd DBSlayer wat 'n ander laag voor MySQL plaas waarmee jy deur JSON praat. http://code.nytimes.com/projects/dbslayer

het jy dit oorweeg om te gebruik libdrizzle?Ek het slegs 'n ou weergawe gebruik, van toe dit 'n aparte projek van motreën was, en ek het die asynchrone navraagkenmerke getoets, maar ek het nooit enige werklike maatstawwe gemaak wat die moeite werd is om te noem nie.

Ek dink die enigste oplossing sal wees om 'n asinchrone diens te skep wat 'n standaard aansluiting.Jy sal egter die ODBC API's moet verstaan.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top