telepath |
Отправлено: 19.10.2004, 15:11 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 132
|
есть таблица в firebird, в ней два поля: Idx (int) и Sum (int)
так же есть структура с такими же вещами типа
CODE |
struct sA
{
int Idx;
int Sum;
}
|
С помощью каких компонентов FIBPlus и каким образом мне забить в эту структуру данные из любой записи этой таблицы через запрос SQL? |
|
olegenty |
Отправлено: 20.10.2004, 09:37 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
вариантов — как грязи, смотря что тебе надо.
если пишешь классовую оболочку над объектами БД, а судя по сути твоих вопроов, ты пока её нифига не способен написать, делай TList , и заполняй в цикле, а потом работай уже с TList. проблемы с поиском в листе (по уникальному ключу) решаются методом бисекции элементарно.
если же тебе в каждый момент времени нужна только текущая запись, то
1. тебе не нужна структура, пользуйся перманентным полем
2. но если ты всё же решил пользоваться структурой, то заполняй её в событии AfterScroll, вот и всё.
|
|
telepath |
Отправлено: 20.10.2004, 11:01 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 132
|
Я имею ввиду другое.
По порядку:
1. Правильно ли я делаю запрос к таблице?
CODE |
fN2->Close();
fN2->SelectSQL->Clear();
fN2->SelectSQL->Add("Select * from tN2 where N1=" + Id);
fN2->Open();
|
где, fN2 — это FibPLus'овский датасет, tN2 имя таблицы, N1 поле в ней
2. Если это правильно, то почему у меня fN2->VisibleRecordCount() = 1, когда записей с Id всего три
3. могу ли я пробежаться по выборке записей методами First(), Next() итд?
Отредактировано telepath — 20/10/2004, 12:05 |
|
** pasha |
Отправлено: 20.10.2004, 12:13 |
|
Не зарегистрирован
|
2 Проверьте и выставите свойства Options->VisibleRecNo = true
возможно также понадобиться выставить
PrepareOptions->psAskRecordCount = true
3 да, конечно можете |
|
telepath |
Отправлено: 20.10.2004, 15:43 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 132
|
Огромное спасибо, **pasha, помогло |
|