Страница 1 из 1

IBDataSet и Select

Добавлено: 15 июл 2006, 17:21
londinium
День добрый, Господа!

Начинаю работать с FireBird 1.5 SS. Клиент разрабатывается на C++Builder 6 с помощью IBX.

Возникла такая проблема
На форму брошены IBTransaction, IBDatabase,IBDataSet, DataSource, DBGrid, Button.
На щелчке по кнопке пишу такое:

Код: Выделить всё


 IBDatabase1->Connected=true;
 IBDataSet1->Open();
 IBDataSet1->Active=true;
 IBDataSet1->SelectSQL->Add("select * from refworkers");
В результате данных в DBGrid не вижу и ошибок не выскакивает.
Если

Код: Выделить всё

IBDatabase1->Connected=true;
IBDataSet1->Active=true;
переложить в FormCreate, то все видится.

Вопрос: у меня руки кривые (вероятнее всего) или что-то другое.
В любом случае спасибо тому, кто поделится правильным кодом.

С уважением, Londinium

Добавлено: 15 июл 2006, 17:47
CyberMax
1. Код метода Open:

Код: Выделить всё

Active = True;
Поэтому IBDataSet1->Open() то же самое, что и IBDataSet1->Active=true;
2. Хороший стиль программирования - использование методов вместо присвоения свойств. В данном случае вместо Active = True использовать Open().
3. Сначала надо задать запрос, а потом уже открывать датасет. То есть правильный код выглядит вот так:

Код: Выделить всё

IBDataSet1->SelectSQL->Clear;
IBDataSet1->SelectSQL->Add("select * from refworkers");
IBDataSet1->Open();

Добавлено: 15 июл 2006, 19:48
londinium
Спасибо. Все работает.