Конференция "Базы" » Отображение последней измененной записи при резервном Copy [Access]
 
  • rikitiki2012 (10.04.12 22:02) [0]
    Здравствуйте!
    Есть БД Access, я к ней обращаюсь  через ADO – как водится поставил на форму ADOConnection, ADOQuery и dataSourse и все соединил между собой.
    В моем приложении после выполнения определенных действий пользователя автоматически происходит резервное копирование БД – файл БД копируется и к разрешению прибавляется буква “d”. Я свел все проблему своего приложения в следующий код:


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    DataSource1.DataSet.Edit;
    DataSource1.DataSet.RecNo:=3;
    DataSource1.DataSet.FieldByName('Col1').AsString:='222';
    DataSource1.DataSet.Post;
    {ADOConnection1.Connected:=false;   } – эта строка изначально закомментирована
    CopyFile('D:\N.mdb','D:\N.mdbd',false)
    end;



    Так вот проблема в том, что обновленная запись со значениями 222 в файле N.mdbd не появляется!!! В «N.mdb» - все нормально, а в копии нет! Несмотря на вызов Post. То ли не успевает обновиться в исходном файле, то ли еще что….я не знаю и  в этом проблема.
    А вот ту строку которая в примере выше закомментирована – если ее раскомментировать, то все будет работать нормально! Но я не хочу разрывать связь с БД – слишком много всего при повторной загрузке необходимо будет восстанавливать. Подскажите пожста – как сделать так, чтобы данные полностью успевали сохраниться перед копированием файла??

    Спасибо!
  • ADOConnection.commit? (10.04.12 22:59) [1]
    ADOConnection.commit?
  • Anatoly Podgoretsky © (11.04.12 09:03) [2]
    > rikitiki2012  (10.04.2012 22:02:00)  [0]

    5 cекунд ожидания
  • sniknik © (11.04.12 09:19) [3]
    можно сбросить кэш у com объекта, но правильнее копировать файл базы именно при том что никто с базой не работает.
  • stas © (11.04.12 11:54) [4]
    rikitiki2012   (10.04.12 22:02)

    А если у DataSet поставить серверный курсор? CursorLocation:=clUseServer

    Не совсем по теме, перед резервным копированием делай сжать/восстановить базу (размер будет меньше).
  • sniknik © (11.04.12 11:57) [5]
    > сжать/восстановить
    смутно помнится, делается на закрытом коннекте с монопольным доступом... и/или, вроде, сразу в копию базы.
 
Конференция "Базы" » Отображение последней измененной записи при резервном Copy [Access]
Есть новые Нет новых   [134431   +9][b:0][p:0.016]