![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Где ошибка? [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, короче, просмотрите внимательно структуру и синтаксис запроса, может, в нем ошибка.