Я новичок в ADO.Я использую ADO в своем проекте C ++ для подключения к SQL Server. Я использую оператор if, чтобы увидеть, существуют ли данные в базе данных, но он просто получает текущие данные не все (например, набор строк), так что это не помогает мне. Я хочуСоберите всю строку в переменной и проверьте (что-то вроде DataRowCollection.Contains
метода в C #), но я не могу найти это для ADO в C ++.Не могли бы вы дать мне несколько советов, как я могу собрать все данные из базы данных, используя C ++ ADO (если ado имеет DataRowCollection), а затем проверить, или что будет лучшим решением?PS Я не хочу использовать DataRowCollection в C ++, потому что он требует using namespace system::Data;
и такой вид пространства имен, а затем system :: data требует преобразования моего проекта /clr (common language runtime support)
.заранее спасибо
_RecordsetPtr pRecordset;
hr = pCommand.CreateInstance(__uuidof(Command));
_bstr_t InsertQuery(L"Insert into TestTB(AccountID, Name, Balance) Values(" + (_bstr_t)a[i].login + "," + (_bstr_t)a[i].name + "," + (_bstr_t)a[i].balance + ")");
pCommand->ActiveConnection = pConnection;
pCommand->CommandText = InsertQuery;
pCommand->CommandType = adCmdText;
valFieldNam = pRecordset->Fields->GetItem("Name")->Value;
valFieldAcc = pRecordset->Fields->GetItem("AccountID")->Value.intVal;
valFieldBal = pRecordset->Fields->GetItem("Balance")->Value.dblVal;
pRecordset->MoveFirst();
while (!pRecordset->EndOfFile)
{
if (valFieldAcc == a[i].login)
{
//update
}
else
{
pConnection->Execute(InsertQuery, NULL, adExecuteRecord);
}
pRecordset->MoveNext();
}