![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() После внесения изменения в БД нужно обновить их в DBGrid, но при обновлении через
Код:
Form2.Query3.Active:=false; Form2.Query3.Active:=true; Возможно ли сделать чтобы он только обновил данные в выделенной строке или как вернутся к той строке снова. ![]() |
#2
|
||||
|
||||
![]() Закладки спасут гиганта мысли.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
![]() Цитата:
![]() |
#4
|
||||
|
||||
![]() Есть такая штука в большинстве БД, называется Bookmark. Цель их использования, пометить некоторую позицию в БД, а затем вернуться к ней.
Делается крайне просто. Вот пример из хэлпа: Код:
procedure DoSomething (const Tbl: TTable) var Bookmark: TBookmark; begin Bookmark := Tbl.GetBookmark; { Allocate memory and assign a value } Tbl.DisableControls; { Turn off display of records in data controls } try Tbl.First; { Go to first record in table } while not Tbl.Eof do {Iterate through each record in table } begin { Do your processing here } . . . Tbl.Next; end; finally Tbl.GotoBookmark(Bookmark); Tbl.EnableControls; { Turn on display of records in data controls, if necessary } Tbl.FreeBookmark(Bookmark); {Deallocate memory for the bookmark } end; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
![]() проблемку решил - подсказали как исползовать букмарки и локейты.
кому интересено вот код предоставленный soleil@mmc Код:
var MyBookMark: TBookmark; begin MyBookMark:= Form2.Query3.GetBookmark; .... Query1.Active := false; Query1.SQL.clear; Query1.SQL.add('update place set ....'); Query1.ExecSQL; .... Form2.Query3.DisableControls; Form2.Query3.Active:=false; Form2.Query3.Active:=true; Form2.Query3.GotoBookmark(MyBookMark); Form2.Query3.EnableControls; Form2.Query3.FreeBookMark(MyBookMark); end; Код:
var l_pk_value: integer; begin l_pk_value::= Form2.Query3.FieldByName('your_pk_field_name').AsInteger; .... Query1.Active := false; Query1.SQL.clear; Query1.SQL.add('update place set ....'); Query1.ExecSQL; .... Form2.Query3.DisableControls; Form2.Query3.Active:=false; Form2.Query3.Active:=true; Form2.Query3.Locate('your_pk_field_name', l_pk_value, []); Form2.Query3.EnableControls; end; поначалу просто непонял что искать... |