powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Господа, что то я не смог разобраться с TBookMarkStr для TQuery
3 сообщений из 3, страница 1 из 1
Господа, что то я не смог разобраться с TBookMarkStr для TQuery
    #32094372
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, что то я не смог разобраться с TBookMarkStr для TQuery
делаю запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
var
   qryElement:TQuery;
   BM:TBookMarkStr;
   BM:TBookMarkStr;
//процедура обновления
begin
  qryElement.Close;
  qryElement.SQL.Text:='';
  qryElement.Open;
end;

//процедура DBGridDblClick
begin
  BM:=qryElement.BookMark;
  if not qryElement.EOF then
  begin
    qryElement.Next;
    BM_End:=qryElement.BookMark;
    qryElement.Prior;
  end;
  FormEditElement.ShowModal;
  if FormEditElement.ModalResult=mrOk then
  begin
    { тут идет }//процедура обновления
    if not qryElement.EOF then
    begin
      try
        qryElements.Bookmark:=BM;
      except
        qryElements.Bookmark:=BM_End;
      end;
    end;
  end;
end;  


чего я добиваюсь
запрос у меня выдает только неотредактированные элементы отобранные неважно по какому условию и если после редактирования элемента
элемент остается неотредактированным, я хочу, чтобы он остался выделенным, текущим значением в DBGrid.
а если он исчез, то выделенным, текущим значением стал следующий за ним элемент
вопрос в следующем
при обновлении данных закладка меняется?
судя по всему да...
и если да то как можно найти и выделить, сделать текущим значением элемент в DBGrid.
...
Рейтинг: 0 / 0
Господа, что то я не смог разобраться с TBookMarkStr для TQuery
    #32094473
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
в данном случае по-моему bookmark не нужен
предлагаю два варианта
 1 -вариант : условие фильтрации списка вынести в фильтр TQuery
и после редактирования запроса запрос не передергивать -
он сам уберет отредактированную запись и спозиционируется на следующей
что-то типа такого
...
// открытие запроса
  Query1.sql.text := 'select ... ' // без условия фильтрации отредактированных
  Query1.Filter := ' id < 35 '      // условие редактирования
  Query1.Filtered := true;
  Query1.Open;
....
// редактирование значения
procedure TForm1.DBGrid1DblClick(Sender: TObject);
var
  Num : string;
begin
   Num := Query1.FieldByName('id').AsString;
   if InputQuery('Редактирование','Свойство1: ',Num) then
     begin
      Query1.Edit;
      Query1.FieldByName('id').AsInteger := StrToInt(Num);
      Query1.Post;
     end;
end;

 2 -вариант : если все-таки  запрос после редактирования нужно переоткрывать
то запоминать в переменной значение ключа самой записи и последующей или предыдущей
и после переоткрытия запроса позиционироваться на нужную запись методом
Query1.Locate('id',  5 ,[])  //  5 -значение ключа поля ID
...
Рейтинг: 0 / 0
Господа, что то я не смог разобраться с TBookMarkStr для TQuery
    #32095045
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дельно!
пасиб LexusR %-))
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Господа, что то я не смог разобраться с TBookMarkStr для TQuery
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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