Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Вниз

PLS 


sasa_ch   (2002-01-09 09:55) [0]

Подскажите, пожалуйста, как сделать запрос к SQL-server 7.0 и выделить эти данные, например, в TList...или куда еще.
Если бы значение ОДНО ,то понятно:
...Select Value as NNN.. и Temp :=ADOQuery.FieldByName("NNN")...
А если много значений? Если можно поподробней.
Большое спасибо!



Desdechado   (2002-01-09 10:08) [1]

много значений - это много строк или столбцов?
если строк, то
qry.First;
while not qry.EOF do begin
// здесь обработка строки
...
qry.next;
end;

если столбцов, то просто перебирай их по именам или номерам и всё.



sky3d   (2002-01-09 10:14) [2]

Приблизительно так .....

TMyRec = record
f1: integer;
f2 : string;
// .. поля НД
end;

FList := TList.Create;

with Query do
while not EOF do
begin
GetMem(ptr, SizeOf(TMyRec)); // структура для данных
TMyRec(ptr^).f1 := Fileds[0].AsInteger; // данные из НД
...
FList.Add(ptr); // указатель на структуру данных по одной записи НД
Next;
end;


Не забыдьте освободить пвмять для списка и его елементов потом
for i := 0 to FList.Count -1 do
FreeMem(ptr, TMyRec(FList[i]^) ) ;
FList.Free;






sasa_ch   (2002-01-09 10:27) [3]

У меня есть несколько строк с несколькими столбцами...
Мне необходимо выделить последние данные из колонки Value
по колонке ID т.е. есть например 10 разных ID в этой таблице
и много записей значений для них, есть время записи в таблицу..
Таким образом я должен вытащить 10 значений последних- для каждого ID одно последнее по времени значение.



sky3d   (2002-01-09 10:48) [4]

SELECT ID, VALUE_, DATE_
FROM TABLE T
WHERE DATE_ IN
( SELECT MAX(DATE_) FROM TABLE N
WHERE T.ID = N.ID )



sasa_ch   (2002-01-09 11:02) [5]

Спасибо за помощь! А можно поконкретней по задаче?
Задача: по таймеру ADOQuery берет эти
значения из базы , раскидывает куда-нибудь в TList
потом опять по таймеру, обновляет TList и так постоянно...
А уже с этими значениями в TList работают мои компоненты которые
по своему таймеру работает каждый со своим значением в TList
(в соответствии с ID) Может можно и попроще алгоритм но пока ничего не идет на ум...Пытался в самих компонентах обращаться по времени к базе но ADOQuery выполняются поочередно и чтобы все обрабатывались нужно было в таймере ставить слишком большое время для моей задачи...



sky3d   (2002-01-09 11:09) [6]

Для начала решите проблему синхронизации, все станет наверное горазда проще..
По описанию выходит слишком громоздская схема.



sasa_ch   (2002-01-09 11:11) [7]

Thanks!




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.015 c
1-18848           Eraser                2002-01-21 15:38  2002.02.07  
Погибаю в пучине потоков (уже давно)


3-18723           sasham                2002-01-09 17:33  2002.02.07  
midas и com+ Ошибка при активации com oбъекта


6-18941           Lamok                 2001-11-10 15:45  2002.02.07  
IP и его замена


7-19002           Новичек               2001-11-02 12:06  2002.02.07  
Как читать данные с CD по секторам ?


14-18981          РУС                   2001-12-16 22:55  2002.02.07  
Повезло или случайность...