Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Заполнение dataset / 6 сообщений из 6, страница 1 из 1
01.08.2020, 19:16
    #39985819
wsnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение dataset
Подскажите, как лучше сделать.

Есть DataSet (MemTableEh), прикрученный к таблице.

В odacQuery1 есть записи:
id_rec
name

В odacQuery2 есть записи:
id_rec
state - поле state (0-не определено; 1 - выполнено; 2 - не выполнено).

Задача заполнить DataSet (MemTableEh), в итоге каждая строка должна быть:
id_rec name state

А далее отсортировать его таким образом, чтобы сначала шли записи со статусом =0, потом 1, потом 2.

Сейчас просто делаю три прогона по odacQuery1, в каждом из них проверяю поле state, а затем по id_rec добавляю в
DataSet (MemTableEh).


try
while not odacQuery1.Eof do
begin
if odacQuery2.Locate('id_rec', odacQuery1.FieldByName('id_rec').AsInteger, [])
and odacQuery2.FieldByName('state').asInteger = 0 then
begin
memTable1.Append;
memTable1.FieldByName('id_rec').AsInteger := odacQuery1.FieldByName('id_rec').AsInteger;
memTable1.FieldByName('state').Value := odacQuery2.FieldByName('state').Value;
memTable1.Post;
end;
odacQuery1.Next;
end;
Далее циклы но уже для state = 1, далее для = 2

Как можно решить проблему более лаконичнее, без трех прогонов?
Возможно получить все в MemTableEh, а потом отсортировать?
...
Рейтинг: 0 / 0
01.08.2020, 22:03
    #39985845
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение dataset
wsnet
Есть DataSet (MemTableEh), прикрученный к таблице.

"Прикрученный" - это что значит?
...
Рейтинг: 0 / 0
02.08.2020, 00:01
    #39985852
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение dataset
Зачем на клиенте искусственно объединять два таблицы ?
Не проще ли построить нужный запрос к серверу ?
...
Рейтинг: 0 / 0
02.08.2020, 00:06
    #39985853
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение dataset
-
...
Рейтинг: 0 / 0
02.08.2020, 13:57
    #39985902
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение dataset
wsnet
Как можно решить проблему более лаконичнее, без трех прогонов?

1. Либо "лаконичнее", либо "более лаконично".
2. select t1.id_rec, t1.name, t2.state from t1, t2 where t1.rec_id = t2.rec_id order by t2.state
...
Рейтинг: 0 / 0
02.08.2020, 16:19
    #39985935
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение dataset
а МемТабля для зачем в вашей задаче?
просто интересно.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Заполнение dataset / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]