Domanda

Fare qualsiasi asincrona sono presenti connettori per Mysql che può essere utilizzato all'interno di una applicazione C o C++?Sto cercando qualcosa che può essere inserito in un reattore modello scritto in Boost.Asio.

[Edit:] l'Esecuzione sincrona connettore nel thread non è un'opzione.

È stato utile?

Soluzione

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

Aggiornato link all'articolo originale che mostra come fare async query mysql:

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

Altri suggerimenti

Ho avuto un problema simile con una molto diverse tecnologie:Twisted python (reattore basato su IO) e sqlAlchemy (??).Durante la ricerca di una soluzione, ho trovato su un sAsync progetto che semplicemente creato un thread separato per sqlAlchemy e poi ha risposto alle richieste.

Dato che ASIO basato sul basso livello di caratteristiche del sistema operativo (come aio_read() o ReadFileEx (), ecc) e un sistema operativo a livello di reattore (o proactor, in Windows caso non credo di poter avere un'altra possibilità di emulare il 'asynchronousness' da mezzi simili.

In esecuzione sincrona connettore nel thread non è un opzione

Pensate:il libmysqlclient / mysqlclient.dll si utilizza rende sincrono chiamate di socket.L'utilità di sistema operativo correttamente, passare a un altro thread fino a quando l'i/O è finito, quindi qual è la differenza?(a parte il fatto che non si deve fare 2k thread per questo..)

Edit:mysql_real_connect() supporta un socket UNIX parametro.Si può presumibilmente leggere voi stessi dal server mysql porta e scrivere socket UNIX solo usando ASIO.Come un proxyfication.

[ In esecuzione sincrona connettore nel thread non è un opzione Pensate:il libmysqlclient / mysqlclient.dll si utilizza rende sincrono chiamate di socket.L'utilità di sistema operativo correttamente, passare a un altro thread fino a quando l'i/O è finito]

Questo è bugging me!- l' 'un altro thread' potrebbe facilmente essere un secondo di sincronizzazione.connessione a mysql, e dovrebbe essere gestito da mysql come un altro client del tutto?Il mio gutfeel è che dovrebbe funzionare utilizzando più thread.

MySQL Connector/C++ è un C++ attuazione di JDBC 4.0

Il riferimento per i clienti che utilizzano MySQL Connector/C++ sono:- OpenOffice - MySQL Workbench

Per saperne di più: http://forums.mysql.com/read.php?167,221298

C'è un progetto chiamato DBSlayer che mette un altro livello di MySQL che si parla attraverso JSON. http://code.nytimes.com/projects/dbslayer

avete considerato la possibilità di utilizzo di libdrizzle?ho usato solo una vecchia versione, da quando era un progetto separato dal filo, e ho provato la query asincrona caratteristiche, ma non ho mai fatto alcun effettivo parametri degni di nota.

Penso che l'unica soluzione sarà quella di creare un servizio asincrono che avvolge un connettore standard.Avrai bisogno di capire le Api ODBC però.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top