Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Обновление программы


Автор: krobs 14.4.2006, 10:36
Господа, вы можете подсказать пожалуйста?!
Как в Delphi 7 можно стелать, чтобы на щелчёк кнопки моя программа обновлялась- как в Windows: кликаешь Обновить!

Заранее спасибо за ответ!

Автор: Tror 14.4.2006, 11:15
что конкретно тебе нужно обновлять?

Автор: krobs 14.4.2006, 12:08
Конкретно (Главное):
1) Скажем нашёл я в БД запись, изменил (добавил, удалил,...) - кликаю кнопку "Все записи" и те данный, котроые только что изменял - в общем списке остаются старыми (хотя в запросе - новые). Чтобы обновить запись (и) --> презапускаю программу;
Процедура кнопки:
Код

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
DataSource1.DataSet:=ADOTable1;
end;


2) Есть у меня такая процедура:
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
StatusBar.Panels[2].Text:='Всего записе в БД: '+ IntToStr(ADOQuery1.RecordCount);
end;


...если я добавляю запись то покая не презепущу программу, в StatusBar у мяня останится прежнее число!


Ну а вообще может проще сделать как я уже говорил - на клик кнопки (новой) обновляется ВСЁ, что может обновиться - мне бы также - если это вообще возможно? Т. Е. обновление = презапуск программы!

Автор: McDevil 14.4.2006, 17:02
krobs, ну допустим
Код

procedure RefreshDataSet(boolActive :Boolean);
begin
 table1.Active:=boolActive;
 table2.Active:=boolActive;
  {и т.д.}
end;

А вообще что-за базу используете...

Автор: krobs 14.4.2006, 17:17
Access 2003 подключаюсь через ADO/
Компоненты: ADOQuery1, ADOTable1, DataSource1

Спасибо за ответ, но толко я не овсем понял:

Цитата

Код

procedure RefreshDataSet(boolActive :Boolean);



RefreshDataSet - это где, куда, откуда.
А другие варианты есть вообще?

Автор: McDevil 14.4.2006, 23:37
krobs, вот вам процедурка :
Код

 public
    { Public declarations }
  procedure RefreshDataSet(const boolActive: Boolean);//обьявляем надеюсь знаете :) 

procedure TForm1.RefreshDataSet(const boolActive: Boolean);
var
  intIndex: Integer;
begin
  with DM do begin
     for intIndex := 0 to ComponentCount - 1 do begin
      if Components[intIndex] is TADOTable then begin
        (Components[intIndex] as TADOTable).Active := boolActive;
      end;
      if Components[intIndex] is TADOQuery then begin
        (Components[intIndex] as TADOQuery).Active := boolActive;
      end;
    end;
  end;
end;

По суте она просто открывает и закрывает ваши таблицы...
Вызываем так:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
 RefreshDataSet(False);//закраваем 
 RefreshDataSet(True);//открываем
end;


ИТОГ:обновление пашет smile

Автор: krobs 15.4.2006, 13:57
Сделал я так:
1) В ручную просто прописал:

Код

public
    { Public declarations }
  procedure RefreshDataSet(const boolActive: Boolean);


Далее, опять - в ручную скопировал процедуру:
Код

procedure TForm1.RefreshDataSet(const boolActive: Boolean);
var
  intIndex: Integer;
begin
  with DM do begin
     for intIndex := 0 to ComponentCount - 1 do begin
      if Components[intIndex] is TADOTable then begin
        (Components[intIndex] as TADOTable).Active := boolActive;
      end;
      if Components[intIndex] is TADOQuery then begin
        (Components[intIndex] as TADOQuery).Active := boolActive;
      end;
    end;
  end;
end;


2) Далее: создал на форме новую кнопку и прописал:
Код

RefreshDataSet(False);//закраваем 
 RefreshDataSet(True);//открываем


3) Запустил программу --> ошибки нет --> выполнил запрос --> изменил запись в появившемся ответе на запрос --> "Все записи" --> нажал новую кнопку --> обновления нет - старая запис как была так и осталась --> пришлось перезапускать программу.

Я тут подумал: RefreshDataSet - может быть это какой-нибудь новый компонент д/б на форме, или в Обжект Инспекторе свойсто какое (или событие)?

Автор: McDevil 15.4.2006, 14:49
Цитата(krobs @ 15.4.2006, 13:57 Найти цитируемый пост)
Я тут подумал: RefreshDataSet - может быть это какой-нибудь новый компонент д/б на форме, или в Обжект Инспекторе свойсто какое (или событие)?

Да нет это название процедуры...
Ну тогда попробуй еще коннект перерубай...
А вообще не знаю у меня всегда нормально работало...

Автор: Martisha 10.12.2008, 09:52
Цитата(McDevil @  14.4.2006,  23:37 Найти цитируемый пост)
with DM do begin

а что такое DM?

Автор: Данкинг 10.12.2008, 11:54
Цитата(Martisha @  10.12.2008,  09:52 Найти цитируемый пост)
а что такое DM?

Ну да, 2.5 года спустя сейчас непременно об этом скажут. smile Хотя, я тоже не понял, зачем там это DM нужно.

Автор: Martisha 10.12.2008, 13:32
Цитата(Данкинг @  10.12.2008,  11:54 Найти цитируемый пост)
Ну да, 2.5 года спустя сейчас непременно об этом скажут

 smile  что то внимание не обратила  smile 

Автор: Akella 10.12.2008, 17:23
Цитата(Данкинг @  10.12.2008,  11:54 Найти цитируемый пост)
у да, 2.5 года спустя сейчас непременно об этом скажут. smile Хотя, я тоже не понял, зачем там это DM нужно. 

Сразу видно, человек пользуется поиском.


Martisha, молодец!!!!!  smile

Добавлено через 4 минуты и 23 секунды
Martisha, ты что, даже не читала 21 урок по "базам данных"? И сразу в оракл? smile 

Автор: Martisha 11.12.2008, 08:14
Цитата(Akella @  10.12.2008,  17:23 Найти цитируемый пост)
Сразу видно, человек пользуется поиском.


Martisha, молодец!!!!!  

 smile  я такая  smile 


Цитата(Akella @  10.12.2008,  17:23 Найти цитируемый пост)
ты что, даже не читала 21 урок по "базам данных"? И сразу в оракл?   

я читала что то по ораклу, но сложно все сразу переварить..я в оракле всего лишь месяца два работаю, и месяца три назад начала программировать  smile  сложно сразу врубиться во все  smile 

а что за 21 урок??? 

Автор: Akella 11.12.2008, 12:53
ну я помню, когда начинал изучение БД, то в инете нашёл и распечатал "21 урок"

Добавлено через 30 секунд
Неужели книжку не купить какую нить типа "БД для начинающих" smile

Автор: Martisha 11.12.2008, 13:30
Цитата(Akella @  11.12.2008,  12:53 Найти цитируемый пост)
Неужели книжку не купить какую нить типа "БД для начинающих"

да у меня две книги под рукой, только пока не столкнешься с проблемой читать бесполезно  smile 
я читала, только не все пока понятно, но мне кажется многие так и начинают и учатся на своих ошибках  smile

Добавлено через 1 минуту и 13 секунд
к тому же иногда просто не знаешь где искать..порой просто пинок небольшой нужен)

Автор: Akella 11.12.2008, 14:04
Цитата(Martisha @  11.12.2008,  13:30 Найти цитируемый пост)
да у меня две книги под рукой, только пока не столкнешься с проблемой читать бесполезно

читай всё подряд, потом, когда столкнёшься с проблемой будешь знать где и что искать

Автор: Martisha 11.12.2008, 14:50
Цитата(Akella @  11.12.2008,  14:04 Найти цитируемый пост)
читай всё подряд, потом, когда столкнёшься с проблемой будешь знать где и что искать 

так и делаю) только каша в голове  smile  а так потихонь-поманеньку  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)