Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.25;
Скачать: CL | DM;

Вниз

Где ошибка?   Найти похожие ветки 

 
SveTTT   (2007-11-04 01:24) [0]

Использую 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 08:25) [1]

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


 
SveTTT   (2007-11-04 10:01) [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 12:27) [3]

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



Страницы: 1 вся ветка

Текущий архив: 2007.11.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
2-1194076264
San1712
2007-11-03 10:51
2007.11.25
Почему при записи в строковую переменную возникает ошибка?


6-1174717948
Z@PODLO
2007-03-24 09:32
2007.11.25
Определение IP адреса сервера по названию сервера


15-1192793813
DevilDevil
2007-10-19 15:36
2007.11.25
Визуальные компоненты на TDataModule


2-1194095144
savyhinst
2007-11-03 16:05
2007.11.25
Таймер в тхреаде


2-1194128249
ASDE
2007-11-04 01:17
2007.11.25
Перевод строки Word. ole