Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > [ADO] Добавление столбца к рекордсету.


Автор: CROTishka 26.1.2010, 10:30
Понадобилось добавить к рекордсету столбец фиктивный.
Не могу понять, почему оно:
http://www.devguru.com/technologies/ADO/8763.asp
не работает в таком контексте:

Код

aRecordset: ADOInt._Recordset
.......
aRecordset := <получение рекордсета с сервера>;
aRecordset.Fields.Append('MyColumn', adBoolean, 1, adFldUpdatable);


однако в пустом:

Код

aRecordset := CoRecordset.Create;
aRecordset.Fields.Append('MyColumn', adBoolean, 1, adFldUpdatable);


отрабатывает нормально.
неужели к рекордсету, если у него уже есть поля, нельзя добавить столбец?

З.Ы. Рекордсет приходит от оракла, если это имеет значение.

Добавлено через 1 минуту и 15 секунд
Ошибка, которую он сообщает:

Код

---------------------------
<название программы>
---------------------------
Операция не допускается в данном контексте.
---------------------------
ОК   
---------------------------


Автор: CROTishka 26.1.2010, 11:36
Причём если скопировать структуру, добавить поле, потом в цкле перегнать строчки, то всё работает.

Автор: CROTishka 26.1.2010, 13:29
спасибо всем откликнувшимся, нашёл ответ на мсдне.

Автор: CROTishka 26.1.2010, 17:03
Ответ таков: 
Цитата

You can only append fields to a Recordset that is not open and has not yet been connected to a data source.

Но проблема от этого не отпала. :(
Подскажите как по-нормальному создать мнимое поле в рекодрсете?
Нашёл такое свойство: fkInternalCalc но что-то при добавление такого поля в отличае от fkCalculated, падает со словами что такое поле не найдено.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)