Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2009, 15:15   #1
GhostBZ
Пользователь
 
Регистрация: 27.08.2009
Сообщений: 56
По умолчанию При экспорте в EXCEL должны поподать свежие данные

Доброе вркмя суток! У меня DBGrid который связан ADOQuery при добавление новых даных в БД, через дополнительную форму, DBGrid не высвечивает свежие только что добавленые данные. Соотвественно и при экспорте в Эксельку тоже передаются старые данные. Как решить данную проблемму.
GhostBZ вне форума Ответить с цитированием
Старый 02.09.2009, 15:18   #2
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Обновляй содержание грида перед экспортом или же после обновления через доп. форму.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 02.09.2009, 15:23   #3
GhostBZ
Пользователь
 
Регистрация: 27.08.2009
Сообщений: 56
По умолчанию

DBGrid1.Refresh; - не подходит, а другие способы есть. Опиши подробнее плиз
GhostBZ вне форума Ответить с цитированием
Старый 02.09.2009, 15:27   #4
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Обновлять следует Query.
Вот безопасная процедура обновления из своих наработок:
Код:
Procedure CheckAndRestoreConnection(_Query: TADOQuery);
var
  FreeQ: TADOQuery;
  S: byte;
begin
  FreeQ:=TADOQuery.Create(_Query.Connection);
  FreeQ.Connection:=_Query.Connection;
  FreeQ.SQL.Clear;
  FreeQ.SQL.Add('select 1 as variable');

  try
    FreeQ.Open;
    S:=FreeQ.Fields[0].AsInteger;
    FreeQ.Close;
    FreeQ.Free;
  except
    _Query.Connection.Close;
    _Query.Connection.Open;
    FreeQ.Free;
  end;

end;

procedure RefreshQ(Q: TADOQuery; ShowWarnings: boolean);
var
  bk: pointer;
begin
  CheckAndRestoreConnection(Q);

  bk:=Q.GetBookmark;
  Q.Close;
  try
    try
      Q.Open;
      if Q.BookmarkValid(bk) then
        Q.GotoBookmark(bk);
    except
      if ShowWarnings then
        ShowMessage('Ошибка при выполнении запроса с сообщением:'+#13+
          Q.Connection.Errors.Item[Q.Connection.Errors.Count-1].Description);
    end;
  finally
    q.FreeBookmark(bk);

  end;
end;
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 02.09.2009, 15:35   #5
GhostBZ
Пользователь
 
Регистрация: 27.08.2009
Сообщений: 56
По умолчанию

Ладно спасибо, попробую!
GhostBZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли востановить данные в Excel? vovikbvovikb Помощь студентам 0 08.08.2009 09:53
Прочитать данные из Excel viter.alex Microsoft Office Excel 7 03.03.2009 14:35
как организовать отклик на событие при импорте-экспорте данных Artmi Microsoft Office Excel 8 03.06.2008 23:31
из dbf-формата занести данные в Excel Luganchanochka Microsoft Office Excel 2 05.04.2008 21:40
Как вытащить данные из Excel в бд dephi, а потом (после работы с данными) сформировать новый файл excel. Геля БД в Delphi 1 10.04.2007 15:11