C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
MemoryData — не могу сделать InsertRecord, сабж
Paranoik
  Отправлено: 06.06.2003, 20:22


Не зарегистрирован







Подскажите пожалуйста, кто знает!
База данных (6-билдёр, компоненты ado) — в ней хочу создать некую виртуальную таблицу для некоторых рассчетов, чтоб в памяти только была.
Нашел только компонент RxMemoryData.
Хочу его в программе забить данными через цикл используя его метод InsertRecord. Но компилятор выдает ошибку мол
"E2247 '_fastcall TRxMemoryData::InsertRecord(int)' is not accessible"

Как быть? ohmy.gif

Или может быть подсоветует какую-нибудь штуку, чтоб можно было виртуальную таблицу создать и шоб её пользовать можно было как обычный DBGrid?
Заранее благодарен!
Admin
Отправлено: 06.06.2003, 22:47


Владимир

Группа: Администратор
Сообщений: 1190



Компонент RxMemoryData работает отлично и без проблем.
Также можете использовать kbmMemoryTable,
он несколько отличается, но работает быстрее.

Оба эти компонента можно связать с любыми DBGrid,
помещать в них данные и т.д.

Отредактировано Admin — 6 Jun 2003, 23:11
Admin
Отправлено: 06.06.2003, 23:10


Владимир

Группа: Администратор
Сообщений: 1190



Кроме того, если нужно целиком поместить
все данные из таблицы или запроса, можно
использовать методы CopyStructure() и LoadFromDataSet()

CODE
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 //  RxMemoryData1->CopyStructure(Table1);
     RxMemoryData1->LoadFromDataSet(Table1, 0, lmCopy);
     RxMemoryData1->Open();
}


для копирования в другой набор SaveToDataSet()

----


А вместо метода InsertRecord() — он недоступен, можно использовать
метод AppendRecord()

CODE

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
   RxMemoryData1->CopyStructure(Table1);
   Table1->Open();   RxMemoryData1->Open();
   while(!Table1->Eof){
       RxMemoryData1->AppendRecord(ARRAYOFCONST((Table1Name->AsString, Table1Date->AsString)));
       Table1->Next();
       }
}


Кстати, не уточнял, но посмотрите на сайте http://polesoft.narod.ru/
они переделывали RXLib и некоторые свойства и методы из
секций private и protected перенесли в public,
так что возможно в RxLib их сборки этот метод и доступен.

Paranoik
Отправлено: 07.06.2003, 12:37


Не зарегистрирован







Большое спасибо за ответ!
Буду пробовать.
cool.gif
_Владимир_
  Отправлено: 09.06.2003, 19:27


Не зарегистрирован







А я работаю через ClientDataSet
Если в него не надо первоначально что-нибудь
закачать из табл, то сначала Create, далее
Append, ну а если нужно то ставлю Provider-а,
Query ...
Paranoik
  Отправлено: 09.06.2003, 23:30


Не зарегистрирован







Не, я с RXMemoryData разобрался — всё отлично. Удобно.
Вполне.
Но буду иметь в виду!
Спасибо.

Вернуться в Работа с базами данных в C++Builder