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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2009, 09:52   #11
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от AnTe Посмотреть сообщение
Однако, что сделано - то сделано. Доступ к данным базе у меня только в RO, не говоря уж о её структуре. А вот извращение, которое возможно применить, для сортировки, по всей видимости одно - скидывать данные в массив, сортировать, и выводить вручную в StringGrid
Как вариант (тоже извращенческий ).
Делаете "зеркало" базы из двух таблиц "Маша+номер", "номер+Петя".
Пишете простенькую программулину для перегона исходной в новую, сортируете новую по "номер+Петя", добавляете "Маша+номер", перезаписываете старую.
mihali4 вне форума Ответить с цитированием
Старый 19.02.2009, 06:20   #12
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Как вариант (тоже извращенческий ).
Делаете "зеркало" базы из двух таблиц "Маша+номер", "номер+Петя".
Пишете простенькую программулину для перегона исходной в новую, сортируете новую по "номер+Петя", добавляете "Маша+номер", перезаписываете старую.
у меня винчестера не хватит, всю базу к себе слить, наверное да и делать это при каждом запросе тоже не радостно: база обновляется в режиме реального времени.

Можно ещё, из результата запроса создавать новую БД, которую и сортировать. Но это, наверное, ещё большее извращение, чем перепись вручную в StringGrid...

А сам DataSet (OraQuery) не даёт даже сделать Append, ругается, что Dataset read-only наверное, потому, что база данных, откуда он загрузился - только для чтения? (свойство OraQuery.ReadOnly = False)

Последний раз редактировалось AnTe; 19.02.2009 в 06:22.
AnTe вне форума Ответить с цитированием
Старый 19.02.2009, 11:05   #13
RaMoNeZz
Пользователь
 
Регистрация: 13.09.2008
Сообщений: 16
По умолчанию

Цитата:
Сообщение от AnTe Посмотреть сообщение
в SQL подобных запросов нет, т.е. языковыми средствами SQL осортировать "Ваня-5-Маша", "Петя-4-Федя" по цифре посредине невозможно
слушай а обязательно сортировать??? может просто отображать то что тебе нужно? может просто сделать запрос и поставить % твое значение %
можно добиться тогда так
select * from table where ID_NUM like % 2 % (запрос может быть не правильно немного написан)
"Клава-1-Боря"
"Петя-2-Федя"
"Серёжа-3-Лена"
"Ваня-5-Маша"

отобразит только
ПЕТЯ-2-ФЕДЯ
RaMoNeZz вне форума Ответить с цитированием
Старый 20.02.2009, 09:31   #14
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию

Цитата:
Сообщение от RaMoNeZz Посмотреть сообщение
слушай а обязательно сортировать??? может просто отображать то что тебе нужно?
нет, не подходит

есть огроменная база документов, у к-ых есть поле "обозначение", в одном из изделий в обозначении через "-" указываются номер проекта и подпроекта, и некоторым юзерам было бы удобно, чтобы по запросу доки выводились отсортированными по проекту-подпроекту. Полей "проект" и "подпроект" в базе нет, и базу реструктурировать исключено.
AnTe вне форума Ответить с цитированием
Старый 20.02.2009, 11:06   #15
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Тогда только сиквелом, как порекомендовал RaMoNeZz, только выбирать записи не с "2", как было указано, а именно с "-2-"...
mihali4 вне форума Ответить с цитированием
Старый 21.02.2009, 08:12   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

угу. полностью согласен с RaMoNeZz и mihali4:
через SQL запрос можно отпарсить строчку и вернуть и номер вашего проекта и подпроект и вообще всё что угодно!

p.s. я уже не говорю о том, что, похоже СУБД у Вас - Oracle ?! так можно написать хранимую функцию на PL/SQL и вообще творить всё, что угодно!
И ещё вариант - создать VIEW с вычисляемым полем (или полями) и в эти поля парсить строчку...
выбирай, не хочу... ;-)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.02.2009, 10:23   #17
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Тогда только сиквелом, как порекомендовал RaMoNeZz, только выбирать записи не с "2", как было указано, а именно с "-2-"...
так ведь запрос, предложенный RaMoNeZz выдаст запись с номеро "2", а мне нужно все записи, отсортированные по части обозначения

Цитата:
Сообщение от Serge_Bliznykov
через SQL запрос можно отпарсить строчку и вернуть и номер вашего проекта и подпроект и вообще всё что угодно
а как это сделать? можно чуть-чуть поподробнее?
примеры обозначений:

MYPROJ-SR-40900-SSM-00048
321-LION-22300-SSM-00022

сортировать нужно по ID (последняя цифра), затем по подпроекту (цифра в середине). Ну или хотя бы просто по ID

Цитата:
p.s. я уже не говорю о том, что, похоже СУБД у Вас - Oracle ?! так можно написать хранимую функцию на PL/SQL и вообще творить всё, что угодно!
И ещё вариант - создать VIEW с вычисляемым полем (или полями) и в эти поля парсить строчку...
выбирай, не хочу... ;-)
ого ну, это уже глубоко. Если решается в запросе SQL - наверное, можно обойтись?
AnTe вне форума Ответить с цитированием
Старый 26.02.2009, 17:38   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вот так не очень сложно будет?

Код:
select * FROM 
  (select NAME_PROD, 
    substr(NAME_PROD,length(TRIM(NAME_PROD)),1) AS PROJECT_NUMBER, 
    substr(NAME_PROD,length(TRIM(NAME_PROD))-1,1) AS SUB_PROJECT_NUMBER 
    from ИмяТаблицы )
order by PROJECT_NUMBER,SUB_PROJECT_NUMBER
Код:
результат (данные от фонаря вбил...):
321-LION-22300-SSM-00032        2       3
ZZ-MYPROJ-SR-40900-SSM-00018    8       1
MY-00028                        8       2
MYPROJ-SR-40900-SSM-00048       8       4
DDDDPROJ-SR-40900-SSM-00098     8       9

Последний раз редактировалось Serge_Bliznykov; 26.02.2009 в 17:41.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать сортировку (поиск) Delphi+Access Toska БД в Delphi 6 28.08.2008 22:32
Как создать собственную ДЛЛ на Дельфи SkyM@n Помощь студентам 5 02.12.2007 07:27
Как же мне это сделать? DBgrid khaz Компоненты Delphi 4 12.02.2007 08:58