Текущий архив: 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