Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обновить данные в DBGrid


FIL-23 ©   (2012-10-26 19:55:00) 

Сначало код.
//******************************************************************************
//******************************************************************************
function select_STREET(ID_DISTRICT:integer):TIBQuery;  
begin
 with form1 do
  begin
   IBQuery1.Active := False;
   IBQuery1.SQL.Clear;
   IBQuery1.SQL.Add ('select '
   + 'STREET.ID,'
   + 'STREET.NAME_ '
   + 'from DISTRICT inner join STREET ON DISTRICT.ID = STREET.ID_DISTRICT '
   + 'where DISTRICT.ID= ' + '''' + inttostr(ID_DISTRICT) + '''');
   // IBQuery2.SQL.Add('ORDER BY ID ASC') ;
    IBQuery1.Active := true;
    select_STREET:=IBQuery1;
  end;
end;
//******************************************************************************
//******************************************************************************


потом где используется эта функция

procedure see_date_fm_STREET_data_7;
var
ID_: integer;
begin
 with fm_STREET_data_7 do
 begin

   ID_ := find_ID_by_PARAM_in_OTHER_TABLE(trim(ComboBox2.Text), 'NAME_','DISTRICT');
   IBQuery1:=select_STREET(ID_);

 end;
end;


И получается что данные в DBGrid не поступают.

Есть какое либо обновление записей в DBGrid?


Кщд   (2012-11-04 12:05:00) [1]

Дорогой ТС:
1. смысла в ф-ции нет;
2. используйте параметры;
3. в данном запросе нет нужды присоединять таблицу district;
4. угадывают сообщения об ошибках на другом форуме;


Очень злой   (2012-11-04 09:36:00) [2]


> Проблем была в том, что в процедура шла работа с "другим"
> query не связанным с нужным DBGrid поэтому было найдено
> решение передавать объект query в функцию, а потом возращать
> измененым. Ну это все образно сказано но смысл надеюсь понятен.
>
> кодик для понимания.
>
> //******************************************************************************
> //******************************************************************************
> function select_STREET(ID_DISTRICT:integer;my_IBQuery:TIBQuery):
> TIBQuery;  
>
> begin
> //  with form1 do
>   begin
>    my_IBQuery.Active := False;
>    my_IBQuery.SQL.Clear;
>    my_IBQuery.SQL.Add ('select '
>    + 'STREET.ID,'
>    + 'STREET.NAME_ '
>    + 'from DISTRICT inner join STREET ON DISTRICT.ID = STREET.
> ID_DISTRICT '
>    + 'where DISTRICT.ID= ' + '''' + inttostr(ID_DISTRICT)
> + '''');
>    // IBQuery2.SQL.Add('ORDER BY ID ASC') ;
>     my_IBQuery.Active := true;
>     select_STREET:=my_IBQuery;
>   end;
> end;


Что-то я не понимаю какой вообще смысл возвращаемого значения функции, если оно равно одному из аргументов?


Anatoly Podgoretsky   (2012-10-27 05:33:00) [3]

> FIL-23  (26.10.2012 20:41:02)  [2]

Неужели так и пишет – выдаю ошибку?


Ghost del vonte   (2012-10-26 22:55:00) [4]

Ответов потому и не было, все и так знали что сам найдешь решение...
форум и правда хороший:)


FIL-23   (2012-10-26 21:03:00) [5]

все нашел ошибку и нашел решение.
Проблем была в том, что в процедура шла работа с "другим" queryне связанным с нужным DBGridпоэтому было найдено решение передавать объект queryв функцию, а потом возращать измененым. Ну это все образно сказано но смысл надеюсь понятен.
кодик для понимания.

//******************************************************************************
//******************************************************************************
function select_STREET(ID_DISTRICT:integer;my_IBQuery:TIBQuery):TIBQuery;  

begin
//  with form1 do
  begin
   my_IBQuery.Active := False;
   my_IBQuery.SQL.Clear;
   my_IBQuery.SQL.Add ('select '
   + 'STREET.ID,'
   + 'STREET.NAME_ '
   + 'from DISTRICT inner join STREET ON DISTRICT.ID = STREET.ID_DISTRICT '
   + 'where DISTRICT.ID= ' + '''' + inttostr(ID_DISTRICT) + '''');
   // IBQuery2.SQL.Add('ORDER BY ID ASC') ;
    my_IBQuery.Active := true;
    select_STREET:=my_IBQuery;
  end;
end;
//******************************************************************************
//******************************************************************************

procedure see_date_fm_STREET_data_7;
var
ID_: integer;
FG:TIBQuery;
begin
 with fm_STREET_data_7 do
 begin

   ID_ := find_ID_by_PARAM_in_OTHER_TABLE(trim(ComboBox2.Text), 'NAME_','DISTRICT');
   IBQuery1:= select_STREET(ID_,IBQuery1)

 end;
end;

хороший форум , сам задал вопрос , сам на него ответил себе :)


FIL-23   (2012-10-26 20:41:00) [6]

ошибку нашел, ошибка в том что function select_STREET(ID_DISTRICT:integer):TIBQuery;не связана с визуальными компонентами.
Поэтому родилась новая проблема , как передать IBQuery в качестве параметра в функцию. пробую так

procedure select_STREET_444(MIBQuery: TIBQuery);

select_STREET_444(IBQuery1)

выдает ошибку .
Т.е. вопрос . как передать компоненту (параметры компоненты) в процедуру/функцию


FIL-23   (2012-10-26 19:57:00) [7]

Уточню , SQL запрос проходит, и данные изменяются , но визуально остается все старые данные, т.е. в DBGrid ни чего не происходит хотя  IBQuery уже совсем другой и с другими параметрами


Наверх

Титульная страница Поиск, карта сайта Написать письмо