Я использую ADO для доступа к базе данных ..
Из документации метод «Execute» объекта _ConnectionPtr возвращает набор записей
(http://msdn.microsoft.com/en-us/library/windows/desktop/ms675023(v=vs.85).aspx)
Аналогично, метод Execute объекта _CommandPtr также возвращает Recordset / Stream / Nothing.
(http://msdn.microsoft.com/en-us/library/windows/desktop/ms681559(v=vs.85).aspx)
Однако я не понимаю, что происходит, если команда sql возвращает одно значение.
Например, что произойдет, если моя команда sql выглядит следующим образом?
_ConnectionPtr myConnectionPtr;
_RecordsetPtr myRecordPtr;
myRecordPtr = myConnectionPtr -> Execute("select 1 from mydb..my_table", NULL, 1);
возвращаемое значение метода Execute просто 1 .. поэтому я не думаю, что оно может быть сохранено в объекте _RecordsetPtr .. Кажется, что документация не объясняет, что происходит, если возвращаемое значение НЕ является ReseultSet, а вместо этого значение..
Как мне решить эту проблему?
Спасибо
Это всегда будет набор результатов — установленный размер будет одной записью, если есть только один результат, — но это все еще набор.
Также,
select 1 from mydb.my_table
вернет столько «1», сколько записей в таблице my_table
— поэтому, если в таблице 100 записей, результирующий набор будет состоять из 100 записей со значением ‘1’