Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.22;
Скачать: CL | DM;

Вниз

Как считать значение всех полей в БД по номеру строки?   Найти похожие ветки 

 
Nikos   (2003-05-02 11:10) [0]

Есть БД. Состоит она из одной таблицы. Мне нужно считать 3 знаения поля строки №10, и вывести в lb1, lb2, lb3. Как это сделать так, чтобы не использовать таблицу?


 
MsGuns ©   (2003-05-02 13:13) [1]

Что значит "не использовать таблицу" ? Может, хотел сказать, не используя TTable ?


 
Nikos   (2003-05-02 15:33) [2]

Да, именно это я хотел сказать. Если знаете как решить мою проблему, просьба написать в форум.


 
MsGuns ©   (2003-05-02 15:53) [3]

Исли не хочешь "ползать" курсором по отображаемому в гриде датасету, связанному с таблицей, то есть 2 метода:

1. Использовать этот же датасет
- Отключить отображение данных в гриде методом DisableControls датасета или Grid.DataSource.Enable := false;
- Запомнить текущее положение активной записи датасета (TTable.GeBookMark)
- Использовать метод TTable.MoveBy на кол-во строк, равное разнице между текущей (RecNo) и требуемой (10-й в твоем примере)
- Извлечь значения нужных полей в кэпшины лабелей (Label1.Caption := TTable1.FieldByName("MyField1").AsString)
- Вернуться в исх.строку TTable.GoToBookMark
(вообще-то вместо бокмарок можно исп-ть просто RecNo)
- Включить отображение данных.

2. Не трогая датасет, чтобы не менять видимую часть данных (в том числе положение активной записи относительно начала отображаемого в гриде подмножества записей)
- Создать (или использовать созданный в дизайне) другой TTable, связанный с этой же таблицей. В нем и искать требуемую запись.

Все это касается только относительного номера записи того курсора, который отображается в гриде. Вообще-то понятие "номер записи" весьма относительное и не отражает реального состояния таблицы или ее части, если вместо TTable исп-ся TQuery. Но даже в случае исп-я TTable без фильтрации нет никакой гарантии, что запись за номером 1 является самой первой на самом деле, т.к. с другого компа могли что-то вставить перед ней или ее же удалить.


 
Anatoly Podgoretsky ©   (2003-05-02 15:59) [4]

Ну если еще и учесть, что набор данных каждый раз может быть выдан в любои порядке при отсутствии упорядочивания, то вообще труба. Если для Парадокс это и не так, то для клиент серверных это просто норма.


 
MsGuns ©   (2003-05-02 16:04) [5]

>Anatoly Podgoretsky © (02.05.03 15:59)

Скорее всего автор сабжа не особо знаком с клиент-серверными БД, работает с парадокс, использую TTable, не сортирует записи и считает, что он один юзает таблицу - тогда такой подход имеет смысл.



Страницы: 1 вся ветка

Текущий архив: 2003.05.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
3-70149
saperxl
2003-05-01 19:48
2003.05.22
Delphi -> MySQL


9-70083
MRB_SPB
2002-12-15 17:47
2003.05.22
!!! нужен совет


7-70530
CMOK
2003-03-23 23:43
2003.05.22
Загрузка CPU/процесс


14-70473
bokus
2003-05-01 20:34
2003.05.22
Через что лучше делать


1-70274
Zelius
2003-05-07 17:17
2003.05.22
Как отлавливать все Exceptionы программы?