Tried to update the code a little and got it compiling with few warnings and bunch of linker errors perhaps forgot to add something somewhere, but it's a start.

Code:
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <math.h.>// engine specific header file
#define DLL_USE // always define before including adll.h
#include "stdafx.h"
#include "adll.h" //A6 dll include

#include "mysql++.h" // MySQL++ header

using namespace std;
using namespace mysqlpp;

Result res;
Connection con(use_exceptions);

BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
engine_bind();
return TRUE;
}

//Open database connection
DLLFUNC var mySQL_Connectdb(STRING *db,STRING *host,STRING *user,STRING *password)
{
try { // its in one big try block
//con.connect("test","localhost","user1","password");
con.connect(db->chars,host->chars,user->chars,password->chars);
if ( !con.connected() ) {
return _VAR(0);
}
}
catch (BadQuery er) { // handle any connection or
// query errors that may come up
return _VAR(0);
}
// The full format for the Connection constructor is
// Connection(cchar *db, cchar *host="",
// cchar *user="", cchar *passwd="")
// You may need to specify some of them if the database is not on
// the local machine or you database username is not the same as your
// login name, etc..

//INSERT INTO testtable (name,strengh,stamina,coord) VALUES ("plouf",20,20,20)

return _VAR(1);
}

DLLFUNC var mySQL_ExecQuery(STRING *str)
{
if ( !con.connected() ) {
return _VAR(0);
}

Query query = con.query();// This creates a query object that is bound to con.

query << str->chars;// You can write to the query object like you would any other ostrem

try{
res = query.store();
}
catch(BadQuery er){
return _VAR(0);
}
return _VAR(1);
}

//Reterne result item x of line y from resultset
//Uses Dramatic Result Set
//result[2][5] or result[2]["price"]
DLLFUNC var mySQL_GetVal(var x, var y)
{

double result;

try{
//result=(double)(res[_INT(y)])[_INT(x)];
result=(double)(res.at(_INT(y))).at(_INT(x));
}
catch (BadQuery& er) {
return _VAR(0);
}
catch (BadConversion& er) {
return _VAR(-1);
}
return _VAR(result);
}

//Reterne result item x of line y from resultset
//Uses Dramatic Result Set
//Return value: -2 str too small
// 0 Bad Query
// -1 Not Text Field
DLLFUNC var mySQL_GetStr(STRING *str, var x, var y)
{
try{
//string my_str((res[_INT(y)])[_INT(x)]);
string my_str((res.at(_INT(y))).at(_INT(x)));
my_str+='\0';
if(str->length >= my_str.length())
strcpy(str->chars,my_str.c_str());
else return _VAR(-2);
}
catch (BadQuery& er) {
return _VAR(0);
}
catch (BadConversion& er) {
return _VAR(-1);
}
return _VAR(1);
}

DLLFUNC void mySQL_Closedb()
{
con.close();
}


DLLFUNC var mySQL_IsConnected()
{
return _VAR(con.connected());
}

DLLFUNC var mySQL_RowNumber()
{
return _VAR((double)res.rows());
}




smile