Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2009, 15:14   #1
wadzik
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 23
По умолчанию Подскажите по фильтрации полей

Есть БД, в которой есть поле SalesID, половина записей в таблице по этому полю заполнена "1" и часть "2", в других полях соответственно стоят другие значения, различные для SalesID = 1 и SalesID = 2, нужно выбрать сначало все поля таблицы которые соответствуют услович что SalesID = 1, а потом, все, что соответствуют SalesID =2

i_razr = 1, затем = 2, значения i_razr меняются как надо

Делаю фильтрацию так


Data.RazrTable.Open;
Data.RazrTable.Filter := 'SalesID =' + IntToStr(i_razr);
Data.SaleTable.First;


потом пытаюсь выбранные поля из RazrTable записать в другую таблицу RazryadTable

Data.RazryadTable.Open;
while not Data.RazrTable.Eof do
begin
Data.RazryadTable.Append;
Data.RazryadTable.FieldByName('Razr yadID').AsString := Data.RazrTable.FieldByName('Razryad ID').AsString;
Data.RazryadTable.FieldByName('Sale sID').AsInteger := Razr_SalesID + 1;
Data.RazryadTable.FieldByName('Uslo vie').AsString := Data.RazrTable.FieldByName('Uslovie ').AsString;
Data.RazryadTable.FieldByName('Kol' ).AsString := Data.RazrTable.FieldByName('Kol').A sString;

Data.RazryadTable.Post;
Data.RazrTable.Next;
end;


При работе фильтра Data.RazrTable.Filter := 'SalesID =' + IntToStr(i_razr); у меня получается, что выбирается
только те поля в которых SalesID = 1, проверяю xxx_temp := Data.RazrTable.FieldByName('SalesNa me').AsString, в xxx_temp то значение которое записано в таблице для SalesID = 1.
Когда SalesID = 2, то xxx_temp := Data.RazrTable.FieldByName('SalesNa me').AsString тоже равно тому что записано для SalesID = 1


Потом когда пишу в другую БД данные из RazrTable с применением фильтра в RazryadTable пишется все что есть в таблице RazrTable без применения фильтра.

Не подскажите, может я что-то пропустил незаметил???

Спасибо.
wadzik вне форума Ответить с цитированием
Старый 08.09.2009, 21:24   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

возможно надо добавить

Data.RazrTable.filterd:=true;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.09.2009, 11:33   #3
wadzik
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 23
По умолчанию

и с Data.RazrTable.filterd:=true не хочет фильтровать, пришлось идти в обход через SQL запрос и выбирать по WHERE то что нужно, с SQL все заработало как надо
wadzik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление скрытых столбцов после фильтрации. Garrison Microsoft Office Excel 7 02.09.2009 16:27
ошибка при фильтрации Screame Microsoft Office Excel 31 14.08.2009 10:10
Объеденение полей запроса в для отображения нескольких полей в одном списке mrCreator Microsoft Office Access 3 08.08.2009 00:53
ошибка фильтрации Dozent Общие вопросы Delphi 5 25.06.2008 22:52
Ошибка при фильтрации! Markus БД в Delphi 0 05.05.2007 17:28