![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ошибка при установке фильтра в ADO таблице [D7, MsAccess]
Davinchi © (2003-11-04 13:14:00)
Помогите разобраться вчем проблема, я хочу отфильтровать поле по определенным значениям и делаю это следуюшим образом:
AdoDataSet.Filter:="xxx";
AdoDataSet.Filtered:=True;
Раньше никогда не работал с АДОшными тэйбалами, поэтому даже приблизительно не знаю как отфильтровать нужное мне поле по нужному мне значению.
Заранее всем благодарен за любую информацию.
aus (2003-11-04 22:19:00) [1]
procedure TForm1.ADOTable1BeforeScroll(DataSet: TDataSet);
begin
if Dataset.RecordCount > 0 then
showmessage(Dataset.fieldByName("name").AsString)
else
showmessage("нет данных");
end;
Anatoly Podgoretsky (2003-11-04 17:31:00) [2]
Образцово показательный пример как задавать вопросы.
Плохиш_ (2003-11-04 17:29:00) [3]
Разжевали, хорошо хоть проглотил
Anatoly Podgoretsky (2003-11-04 17:27:00) [4]
Опять же ничего не пишешь про подключение, может у тебя провайдер кривой.
Anatoly Podgoretsky (2003-11-04 17:26:00) [5]
Ошибка в самом коде нет.
"b" а у тебя может быть такая запись, как то сомнительно.
Про апдейты я уже ранее писал. Ошибка характерная для Д5 без апдейтов, но что не слышал, что бы это наблюдалось в Д7.
Davinchi (2003-11-04 17:25:00) [6]
а ну вот, так бы срузу и сказал...
У меня в BeforeScroll стаяла запись данных в текущую запись, надо было только условие поставить, что производить запись если только RecordCount>0...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!! СПАСИБО ВСЕМ ТЕМ, КТО ПОМОГ МНЕ РАЗОБРАТЬСЯ !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
paul_k (2003-11-04 17:19:00) [7]
смотря что у тебя в BeforeScroll/AfterScroll написано
Davinchi (2003-11-04 17:18:00) [8]
как корректно обработать эту ошибку, так чтобы у меня был пустой DbGrid и нее кто не ругался..
paul_k (2003-11-04 17:17:00) [9]
Davinchi
а у меня дача в сочи...
Davinchi (2003-11-04 17:16:00) [10]
у меня данные отображаются в DbGrid
paul_k (2003-11-04 17:16:00) [11]
Davinchi
Ошибка возникает при исполнении
procedure TForm1.ADOTable1BeforeScroll(DataSet: TDataSet);
begin
showmessage(Dataset.fieldByName("name").AsString)
end;
а не при фильтрации
Davinchi (2003-11-04 17:14:00) [12]
Если выполнять фильтрацию со значением, которое есть хотябы в одном рекорде все нормально, но если со значением которого нет ни в одном рекорде, как в приведенной строке:
ADSet.Filter:="Description = "+QuotedStr("b");
то возникает ошибка [16].
Ранее я был не прав т.к. пологал, что ошибка присходит только с числовым фильтром, пока не попробовал не существующее строковае занчение фильтра...
paul_k (2003-11-04 17:11:00) [13]
уфф... упарился этой ошибки добиватся, но таки вышло
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ADOTable1.Filtered:=false;
ADOTable1.Filter:="NAME="+QuotedStr("99");
ADOTable1.Filtered:=true;
end;
и
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOTable1.Edit;
ADOTable1.Filtered:=false;
ADOTable1.Filter:="NAME="+QuotedStr("*");
ADOTable1.Filtered:=true;
end;
пролетают на ура, пока следующее не написано
procedure TForm1.ADOTable1BeforeScroll(DataSet: TDataSet);
begin
showmessage(Dataset.fieldByName("name").AsString)
end;
Davinchi (2003-11-04 17:08:00) [14]
Вот так бы сразу, я же спрашивал какая информация нужна...
Структура Бд:
TableTheme:="CREATE TABLE TestTheme"+
"([id]Counter,"+
"[Description]String (50),"+
"[Data]Memo,"+
"[RichData]Memo,"+
"PRIMARY KEY ([id]))";
реальный кусок кода:
if ADSet.RecordCount > 0 then
begin
ADSet.Filtered:=False;
ADSet.Filter:="Description = "+QuotedStr("b");
ADSet.Filtered:=True;
end;
Апдейтов не ставил, только руссификатор Д7...
Anatoly Podgoretsky (2003-11-04 17:01:00) [15]
В таком случае не надо задавать этот вопрос Davinchi © (04.11.03 16:42) [32] , поскольку это прямой ответ на него.
Пока до сих пор ты практиски ничего не сказал про свою таблицу структуру, не привел пример реальных данных в таблице, по которым ты вроде считешь, что данные у тебя есть, и при каждом изменении надо приводить измененый код, чтобы мы не гадали, что же ты там изменил.
Кроме того мне кажется, что у тебя не Д7, а если Д7 какие апдейты ты поставил.
Davinchi (2003-11-04 16:57:00) [16]
проблема в том, что если в БД нет записей соответствующих запросу фильтра, то происходит эта ошибка, как нормально обрабатывать эту ситуацию...
P.S.
Anatoly Podgoretsky, сохраняйте тематику форума и держитесь в рамках приличия этого сайта, не надо переходить на личности, прочитайте о чем пишется на главной страничке форумов... :-(
Anatoly Podgoretsky (2003-11-04 16:49:00) [17]
Проблема наверно в тебе
Davinchi (2003-11-04 16:42:00) [18]
ближе к теме пожалуйста, в чем проблемма с таким способом использования фильтра???
Anatoly Podgoretsky (2003-11-04 16:36:00) [19]
Различия нет, различие зависит только от примененой базы.
Davinchi (2003-11-04 16:32:00) [20]
С обычными dbf работал и делал фильтры так как и сейчас, а с АДОшными таблицыми столкнулся впервые...