Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.06.02;
Скачать: CL | DM;

Вниз

Как обновить данные в DBGrid   Найти похожие ветки 

 
FIL-23   (2012-10-26 19:55) [0]

Сначало код.
//******************************************************************************
//******************************************************************************
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?


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

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


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

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

procedure select_STREET_444(MIBQuery: TIBQuery);

select_STREET_444(IBQuery1)

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


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

все нашел ошибку и нашел решение.
Проблем была в том, что в процедура шла работа с "другим" 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;

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


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

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


 
Anatoly Podgoretsky ©   (2012-10-27 05:33) [5]

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

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


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


> Проблем была в том, что в процедура шла работа с "другим"
> 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;


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


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

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



Страницы: 1 вся ветка

Текущий архив: 2013.06.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1359145803
Юрий
2013-01-26 00:30
2013.06.02
С днем рождения ! 26 января 2013 суббота


15-1359384923
Error0xDEADBEEF
2013-01-28 18:55
2013.06.02
Пересесть с Delphi на Java/Android


15-1358877111
Дмитрий С
2013-01-22 21:51
2013.06.02
Почтовый ретранслятор.


2-1351922003
alexdn
2012-11-03 09:53
2013.06.02
Расширение формы


15-1358926991
Потапыч
2013-01-23 11:43
2013.06.02
Как программно отключить UAC?