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

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

Где ошибка? [D7, XP]


SveTTT ©   (2007-11-04 01:24:00) 

Использую EHlib для BDE.
Сортирую по заголовку
s := '';
   if DMFrm.NalichieQuery.Active then begin
   s := DMFrm.NalichieQuery.SQL.Text;
   delete(s,pos('ORDER BY',s),length(s));
   s := s+ 'ORDER BY ' +Column.FieldName;
     DMFrm.NalichieQuery.Close;
   DMFrm.NalichieQuery.SQL.Clear;
   DMFrm.NalichieQuery.SQL.Add(s);

//  DMFrm.NalichieQuery.SQL.Add('Order by '+Column.FieldName);
 DMFrm.NalichieQuery.Open;


Ругается Invalid use of ... ORDER

И переходит в EhlibBDE.pas
на
procedure TSQLDatasetFeaturesEh.ApplySorting(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean);
begin
 if Sender is TCustomDBGridEh then
   ApplySortingForSQLBasedDataSet(TCustomDBGridEh(Sender), DataSet, SortUsingFieldName, IsReopen);
end;

Подскажите, где моя ошибка!


ASoft   (2007-11-04 12:27:00) [1]

вы так и не сказали, чему равно s после присвоения s := s+ 'ORDER BY ' +Column.FieldName;
Поставьте точку останова после этой строки и посмотрите (наведите мышью на s)
PS: я исхожу из ..Ругается Invalid use of ... ORDERможет s, все же, не корректна


SveTTT   (2007-11-04 10:01:00) [2]

to Asoft

Сейчас поясню. Синтаксис рабочий, структура такова - что после выполнения сложного объеденительного запроса c подсчетами результатов, пользователь может сортироватьколонки с итоговыми результатми.

s := '';
  if DMFrm.NalichieQuery.Active then begin
  s := DMFrm.NalichieQuery.SQL.Text;
  delete(s,pos('ORDER BY',s),length(s));
  s := s+ 'ORDER BY ' +Column.FieldName;
    DMFrm.NalichieQuery.Close;
  DMFrm.NalichieQuery.SQL.Clear;
  DMFrm.NalichieQuery.SQL.Add(s);
DMFrm.NalichieQuery.Open;

- это позволяет сортировать по заголовку от A-Я.

Я подсоеденила EhlibBDE.pas и в свойствах OptionsEh включила dghAutoSortMarking и dghMultiSortMarking- чтобы сортировка была А-я / Я-а. Это было сделано строго по help Ehlib.

Результат - процесс сортировки запускается, в при перестроении Grid'а ругается на ORDER. Если отключить dghAutoSortMarking и dghMultiSortMarking то сортировка работает, но только А-я.

Надеюсь, что пояснения блондинки - логичны :).


ASoft   (2007-11-04 08:25:00) [3]

>SveTTT   (04.11.07 01:24)
чему = ..SQL.Text;
и чему = s после манипуляций с delete и конкатенацией?
чему =  ..NalichieQuery.SQL.Text в случае ..add(s), ведь в начале s=NalichieQuery.SQL.Text, короче, просмотрите внимательно структуру и синтаксис запроса, может, в нем ошибка.


Наверх

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