Я перенесу некоторый код из C # в C ++, и мне было интересно, могу ли я перенести существующее соединение из C #, где есть несколько простых пакетов соединений, в C ++ DLL для чтения и обработки результатов. Мое приложение подключается к 5 различным типам баз данных, но я упростил все после выполнения запроса, используя IDataReader
для упрощения.
public static string OdbcExecuteQuery(OdbcConnection conn, string strQuery) {
try {
using (DbCommand com = new OdbcCommand(strQuery, conn)) {
var dataResults = GenericReader(com);
}
}
catch (Exception ex) {
}
conn.Close();
return "Success";
}
public static string MySqlExecuteQuery(MySqlConnection MyConnection, string strQuery) {
try {
using (DbCommand com = new MySqlCommand(strQuery, MyConnection)) {
var dataResults = GenericReader(com);
}
}
catch (Exception ex) {
}
MyConnection.Close();
return "Success";
}
// This method will read the results from any established connection
public static string GenericReader(DbCommand com, DataTable rawData = null) {
IDataReader reader = null;
try {
if (rawData == null){
com.CommandTimeout = 300;
using (reader = com.ExecuteReader()) {
var dtSchema = reader.GetSchemaTable();
rawData = QueryToDataTable(reader, dtSchema);
}
}
}
catch (Exception ex) {
}
return "Success";
}
Возможно ли установить соединение в C # и вызвать функцию, подобную GenericReader
что есть в C ++ DLL? Я довольно новичок в C ++, и хотя я знаю, что вы можете передавать примитивы, такие как ints
и strings
, не уверен, что вы сможете это сделать.