Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Господа, что то я не смог разобраться с TBookMarkStr для TQuery / 3 сообщений из 3, страница 1 из 1
22.01.2003, 08:28
    #32094372
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа, что то я не смог разобраться с TBookMarkStr для TQuery
Господа, что то я не смог разобраться с 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
22.01.2003, 11:29
    #32094473
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа, что то я не смог разобраться с 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.
в данном случае по-моему 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
23.01.2003, 11:19
    #32095045
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Господа, что то я не смог разобраться с TBookMarkStr для TQuery
дельно!
пасиб LexusR %-))
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Господа, что то я не смог разобраться с TBookMarkStr для TQuery / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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