Конференция "Начинающим" » Сортировка DbGrid по клику на колонке [D7, XP]
 
  • Михалыч (04.01.17 19:53) [0]
    Доброго времени суток! Собственно сабж, никак не выходит.. (( Перелопатил кучу инфы в сети нашел, что народ решает эту задачу создавая глобальную переменную в которую и передает запрос, а потом при клике на колонке переоткрывает его меняя order by + Index колонки:
    http://base.vingrad.ru/view/1180-Sortirovka-DBGrid-po-kliku-na-kolonke
    Но у меня в запросе куча параметров и уже есть сортировка. Как решить?
    Была идея извлекать и SQL.Text и менять order by а потом повторно присвоить и открыть запрос, но не уверен что прокатит без передачи параметров.. ((
  • Михалыч (04.01.17 20:03) [1]
    D2010, FB2.5, ibquery
  • Игорь Шевченко © (04.01.17 21:30) [2]

    > Но у меня в запросе куча параметров и уже есть сортировка.
    >  Как решить?


    Очевидно, изменить запрос в части Order by, повторно присвоить параметрам значения и выполнить. Другого пути попросту нет.
  • Михалыч (04.01.17 23:05) [3]
    А что будет с ранее переданными параметрами в запрос? Они вытянутся с SQL.Text? Выполниться запрос просто с измененным order by? Повторная передача параметров будет довольно затруднительной.. Разве что постоянно где-то в глобалках их хранить тоже придется, чего бы не оч.хотелось..
  • Михалыч (04.01.17 23:14) [4]
    Проблема в том что меняются не только запросы но и количество параметров в них, так-как в DbGrid выводятся разные поисковые данные. Если еще с подменой order by более-менее понятно, то как выполнить парсинг SQL.Text чтобы узнать количество переданных параметров даже не представляю.. ((
  • iop © (04.01.17 23:53) [5]
    у тебя соседский дядя что ли sql текст формирует
    что ты без понятия сколько там параметров в твоем запросе?
  • Михалыч (04.01.17 23:55) [6]
    )) пользователь можт че угодно искать в базе и параметры соответственно меняются.. и их количество также.. Все-таки параметры нужно хранить и снова передавать. С датасетом никак не получится пересортировать?
  • Михалыч (04.01.17 23:59) [7]
    другого способа пересортировки в обычном DbGrid нет? чтобы не юзать EhLibы всякие..
  • iop © (05.01.17 00:00) [8]
    пользователь можт че угодно искать в базе

    кто конкретно меняет текст sql?
    пользователь или программист?
  • iop © (05.01.17 00:06) [9]
    пользователь можт че угодно искать в базе и параметры соответственно меняются.. и их количество также..

    ой бедааа......

    возьмем например TQuery из D2.
    писали его в середине девяностых прошлого века.
    сегодня я беру его, записываю произвольный sql text с произвольным количеством параметров.
    и о чудо! оно работает даже в 17 году следующего столетия.

    это что же получается?
    получается они в 94 году уже знали какой я запрос напишу в 17 году и сколько в нем будет параметров?
    крута.....
  • Михалыч (05.01.17 00:20) [10]
    пользователь задает параметрі поиска в программе, а она формирует запрос в базу, но количество параметров действительно может меняться. if then else короче.. ((
  • iop © (05.01.17 00:22) [11]
    и што?

    действия пользователя каким-то магическим способом уничтожает коллекцию парамз у датасета что ты ее перестаешь видеть?
  • iop © (05.01.17 00:24) [12]
    пользователь задает параметрі поиска в программе, а она формирует запрос в базу

    а ну понятно.
    есть пользователь и есть "она".
    программист здесь не предусмартивался изначально.

    чо тогда паришься?
    если "она" формирует запрос, то пусть "она" и с параметрами разбирается.

    а ты отмечай новый год.
  • Михалыч (05.01.17 00:27) [13]
    )) она - программа, просто незнаю как параметры у датасета вытащить? подскажете? а с подменой order by запроса уже разберусь...
  • Михалыч (05.01.17 00:28) [14]
    некогда праздновать, заказчик напрягает.. ((
  • iop © (05.01.17 00:52) [15]
    конечно подскажу.
    про параметры датасета твоего
    надо читать доку датасета твоего.
    там же можно прочитать есть ли у него клиентский сорт и работает ли он.

    заказчик его напрягает ....
    как все серьезно ио там
  • Михалыч (05.01.17 00:54) [16]
    FB 2.5 действительно серьезно.. стал бы я спрашивать если бы сам знал.. ((
  • iop © (05.01.17 00:56) [17]
    ты бы лучше заказчиков заводил не до прочтения доки а после.
    ага.

    "серьезная фирма возьмет дырокол в аренду"...
  • Игорь Шевченко © (05.01.17 11:15) [18]

    > А что будет с ранее переданными параметрами в запрос?


    Их надо запомнить перед тем, как менять текст SQL-запроса. В твоем случае ничего не меняется кроме части order by, следовательно, количество параметров тоже не изменится.
  • Михалыч (05.01.17 13:08) [19]
    Количество параметров варьируется в зависимости от условий поиска. Хранить их в глобалках или их можно вытащить из датасета и повторно присвоить перед выполнением измененного запроса?
 
Конференция "Начинающим" » Сортировка DbGrid по клику на колонке [D7, XP]
Есть новые Нет новых   [118603   +21][b:0][p:0.001]