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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2015, 17:32   #31
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
но БД sql server у меня
Это критично, для MS SQL таких фокусов не предусмотрено. То ли делай хранимую процедуру с запросом, то ли из программы текст запроса передавай. Вьюху тоже можно, только есть ли смысл для любого чиха такой огород городить?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.08.2015, 17:36   #32
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Ну ты и злодей

Цитата:
Вьюху тоже можно, только есть ли смысл для любого чиха такой огород городить?
а как иначе?

Stilet, не бросай меня на последнем участке. Я же в жизни с этом штукой не разберусь.

Последний раз редактировалось Stilet; 30.08.2015 в 18:20.
Ernest027 вне форума Ответить с цитированием
Старый 30.08.2015, 18:21   #33
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Я же в жизни с этом штукой не разберусь.
А ты старайся.
Читай ссыль, там сказано как создать вью.
Потом имя той вьюхи вставишь в запрос.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2015, 18:26   #34
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Неужели не проще создать в sql server ещё одну таблицу с такими же полями и копировать туда значения по условию?
Ernest027 вне форума Ответить с цитированием
Старый 30.08.2015, 18:48   #35
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Создание дополнительных таблиц может создать избыточность, а именно это является лейкозом всех баз данных. Создать то ты можешь что угодно, но спасибо тебе пользователи за это не скажут. Я так понимаю тебе еще не приходилось сталкиваться с ужасно тормознутой базой?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2015, 19:07   #36
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Нет,не приходилось. Ладно,буду пытаться

Код:
with ADOQuery1 do
  begin
  SQL.Clear;
  sql.Add('create view Vibration2 (f,a,v,d) as select f,a,v,d from Vibration, case when (select max (d) from 
Vibration)>999 and (select max (d) from Vibration)<999999 then d/1000');
  SQL.Add('when (select max (d) from Vibration)>999999 and (select max (d) from Vibration)<999999999 then 
d/1000000');
  SQL.Add('when (select max (d) from Vibration)>999999999 then d/1000000000');
  SQL.Add('else d end as d1,');
  SQL.Add('case when (select max (a) from Vibration)>999 and (select max (a) from Vibration)<999999 then a/1000');
  SQL.Add('when (select max (a) from Vibration)>999999 and (select max (a) from Vibration)<999999999 then
 a/1000000');
  SQL.Add('when (select max (a) from Vibration)>999999999 then a/1000000000');
  SQL.Add('else a end as a1 from Vibration order by f');
  ExecSQL;
  sql.Add('select * from Vibration2');
  Open;
так вылетает ошибка
Цитата:
неправильный синтаксис около слова case

Последний раз редактировалось Stilet; 31.08.2015 в 07:26.
Ernest027 вне форума Ответить с цитированием
Старый 31.08.2015, 03:27   #37
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
так вылетает ошибка
виуха создается только один раз , и потом можно select выбрать как таблица ... Вы его каждое раз хотите создать ?
Цитата:
неправильный синтаксис около слова case
синтаксис запросов надо всегда проверять сам на Management Studio ....
Цитата:
select f,a,v,d from Vibration, case
CASE перед FROM таблицы .! и не после FROM таблицы ...

Последний раз редактировалось xxbesoxx; 31.08.2015 в 03:42.
xxbesoxx вне форума Ответить с цитированием
Старый 31.08.2015, 07:35   #38
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ernest027
Ты все делаешь неправильно )

Открываешь Менеджер MS SQL. В него запихиваешь такой код:
Код:
create view Vibration2 as 
   select Vibration.*
    , case when (select max (d) from Vibration)>999 and (select max (d) from Vibration)<999999 
         then d/1000 
             when (select max (d) from Vibration)>999999 and (select max (d) from Vibration)<999999999 
         then d/1000000
              when (select max (d) from Vibration)>999999999 
         then d/1000000000
      else d end as d1,
   , case when (select max (a) from Vibration)>999 and (select max (a) from Vibration)<999999 
         then a/1000
            when (select max (a) from Vibration)>999999 and (select max (a) from Vibration)<999999999 
         then a/1000000
            when (select max (a) from Vibration)>999999999 
         then a/1000000000
     else a end as a1 
from Vibration
Его нужно выполнять только один раз!!!
Та ерунда, что ты вставил в ADOQuery1 (ты явно не понимаешь, что такое представления) скорее всего при втором выполнении даст ошибку, потому что вьюхи как и в акцессе "запросы" запоминаются в БД НАВСЕГДА!

А уже в своей программе тебе нужно писать запрос
Код:
select * from Vibration2 order by f
Короче: Бросай. Пока не поздно. Программирование это не твое. Учиться ты не хочешь, читаешь спустя рукава. Внимания - ноль.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.08.2015, 12:28   #39
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Не брошу. Я делаю для себя. А первый блин комом
Stilet, Делаю как ты написал. Таблица вставляется в первоначальном виде,никакие условия не выполняются. Как были тысячи так и остались,миллионы-миллионы
Ernest027 вне форума Ответить с цитированием
Старый 31.08.2015, 12:38   #40
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хотел написать "покажи таблицу", но больше я на твои шуточки не попадусь. Ни-ни
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование единиц измерения Zirat Microsoft Office Excel 9 29.11.2022 21:14
дана строка состоящая из групп нулей и единиц. Подсчитать количества единиц в группах с нечетным количеством символов (на Delphi) ArturBattalov Помощь студентам 1 06.10.2013 16:16
Найти байтс наибольшим числом единиц и найти байт с наибольшим чилом нулей. Найти разность число единиц м Beren42 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.12.2010 17:44
Конвертер денежных единиц vmilyoshin Помощь студентам 6 16.04.2010 11:07
Найти сумма единиц Bayram_662 Паскаль, Turbo Pascal, PascalABC.NET 6 22.10.2009 22:11