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

Вниз

обновление DBGrid   Найти похожие ветки 

 
-=snoop=- ©   (2005-07-06 12:58) [0]

привет всем
ситуация такая, на форме прописан TDBgri, TADOQuery,TDataSource
TADOQuery смотрит на 2 таблички дбф, из которых выделятся данные.
есть у меня кнопка "делете", нажав котору происходит следующее событие

[начало цикла]
 [проветка на кол-во выделенных записей]
//удаление записей
 gADOq.SQL.Clear();
 gADOq.SQL.Add("delete from E:\work\!userbst\grupp.dbf where trim(name) ="+""""+lGrName+""""+" and trim(predpr) ="+""""+lPrCode+"""") ;
 gADOq.ExecSQL() ;
 end;
end;
//обновлнеи таблици
 gADOq.SQL.Clear ;
 gADOq.SQL.Add("SELECT a.name, b.lbl_name, b.lbl_path, b.lbl_code FROM E:\work\!userbst\grupp a INNER JOIN label.pro b ON a.predpr=b.lbl_code WHERE trim(Name)="+""""+gGruppName+"""") ;
 gADOq.ExecSQL() ;
 lBaseGRD.DataSource.DataSet.Active := true ;

не знаю как делать правильно, но мне кажется , делать второй запрос не верно и есть св-во, которое отвечает за этот процесс, но у какого объекта не могу найти, все refreshi перебрал, не помогает, подскажите чего мона сделать)))


 
msguns ©   (2005-07-06 13:01) [1]

А зачем две ветки-то заводить ?


 
-=snoop=- ©   (2005-07-06 13:09) [2]

Вы имеете ввиду gADOq? обновление у меня происходит после всех удалений


 
stone ©   (2005-07-06 13:11) [3]


> //обновлнеи таблици
>  gADOq.SQL.Clear ;
>  ...
>  gADOq.ExecSQL() ;

Нужно gADOq.Open;


 
-=snoop=- ©   (2005-07-06 13:34) [4]

попробую,))


 
-=snoop=- ©   (2005-07-06 13:39) [5]

gADOq.ExecSQL() мне ведь запрос нужно запустить на выполнение


 
-=snoop=- ©   (2005-07-06 13:41) [6]

если использовать gADOq.Open = выдается ошибка
gADOq: CommandText does not return a result set


 
msguns ©   (2005-07-06 13:45) [7]

Для изменения (UPDATE-DELETE-INSERT) используется TADOCommand или TADOQuery (метод ExecSQL). Для отображения данных в гриде юзают TADOQuery.Open

Справка же есть. Ну чего ж не почитать, а ?


 
-=snoop=- ©   (2005-07-06 13:54) [8]

туплю, просто куча ошибок сыпится при групповом удалении всяких


 
-=snoop=- ©   (2005-07-06 14:04) [9]

т.е. вот так должно все выглядеть

//удаление
             lGrName := trim(lBaseGRD.DataSource.DataSet.FieldValues["Name"]) ;
             lPrCode := trim(lBaseGRD.DataSource.DataSet.FieldValues["lbl_code"]) ;
             //showmessage(""""+lGrName+""""+" and trim(predpr) ="+""""+lPrCode+"""") ;
             gADOq.SQL.Clear();
             gADOq.SQL.Add("delete from E:\work\!userbst\grupp.dbf where trim(name) ="+""""+lGrName+""""+" and trim(predpr) ="+""""+lPrCode+"""") ;
             gADOq.ExecSQL() ;
//обновление
             gADOq.SQL.Clear ;
             gADOq.SQL.Add("SELECT a.name, b.lbl_name, b.lbl_path, b.lbl_code FROM E:\work\!userbst\grupp a INNER JOIN label.pro b ON a.predpr=b.lbl_code WHERE trim(Name)="+""""+gGruppName+"""") ;
             gADOq.open() ;
             lBaseGRD.DataSource.DataSet.Active := true ;


 
stone ©   (2005-07-06 14:23) [10]


> gADOq.open() ;
>              lBaseGRD.DataSource.DataSet.Active := true
> ;

Если lBaseGRD.DataSource.DataSet = gADOq, то последняя строка не имеет смысла


 
-=snoop=- ©   (2005-07-06 14:31) [11]

да, я ее забыл удалить

спасибо


 
msguns ©   (2005-07-06 14:42) [12]

А зачем обращение к одному и тому же датасету то напрямую, то хитро через грид - чтоб немцы не догадались ?


 
-=snoop=- ©   (2005-07-06 14:44) [13]

если Вы про
lBaseGRD.DataSource.DataSet.Active := true
%)
с кем не бывает по неопытности



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

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

Наверх




Память: 0.49 MB
Время: 0.036 c
4-1119458310
XCept.ion
2005-06-22 20:38
2005.08.14
Kейлоггинг


1-1121886948
SpyBoy
2005-07-20 23:15
2005.08.14
Потоки-потоки


1-1122393085
van1tas
2005-07-26 19:51
2005.08.14
помогите с написанием алгоритма


1-1122380177
Alexey_T-O
2005-07-26 16:16
2005.08.14
Курс $


4-1119348127
clickmaker
2005-06-21 14:02
2005.08.14
Как программно узнать, что диск - subst?