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

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

ошибка при установке фильтра в ADO таблице [D7, MsAccess]


Страницы:   1 2 3

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 работал и делал фильтры так как и сейчас, а с АДОшными таблицыми столкнулся впервые...


Страницы:   1 2 3

Наверх

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