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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2009, 16:29   #11
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
Код:
five.SQL.ParamByName('p1').Value:= // сюда передавать список объектов
если я понимаю, то после ':=' должно быть что то типа 'Объект 1' or 'Объект 2' оr 'Объект 3'?
Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
Код:
five.SQL.ParamByName('p0').Value:= FormatDateTime( 'dd.mm.yyyy', Present);
здесь компилятор ругается на '.ParamByName'.. хотя в свойствах adoquery указан параметр.

Последний раз редактировалось kate158; 17.05.2009 в 16:40.
kate158 вне форума Ответить с цитированием
Старый 17.05.2009, 17:14   #12
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

попробуй так (у тебя же селкет небось по всем объектам)
Код:

with
t as
(
select *
from secondtable
where 0=0
  and DATA= :p0
)

select d1 d, idobject, data, 1 hours
from t
union all
select d2 d, idobject, data, 2 hours
from t
union all
.....
select d24 d, idobject, data, 24 hours
from t

five.SQL.ParamByName('p0').Value:= FormatDateTime( 'dd.mm.yyyy', Present);
а это
Код:
'Объект 1' or 'Объект 2' оr 'Объект 3'
должно быть через запятую
Код:
'Объект 1', 'Объект 2', 'Объект 3', ...
и скорее всего параметром это не удастся передать и придется макросом

Последний раз редактировалось soleil@mmc; 17.05.2009 в 17:18.
soleil@mmc вне форума Ответить с цитированием
Старый 17.05.2009, 18:04   #13
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию

хех.
вот код.
Код:
procedure TForm1.BitBtn6Click(Sender: TObject);
var
Present: TDateTime;
begin
Present:= DateTimePicker1.Date;
five.SQL.Clear;
five.SQL.Add('with t as');
five.SQL.Add('(select *');
five.SQL.Add('from secondtable');
five.SQL.Add('where 0=0');
five.SQL.Add('and DATA=:g)');
five.SQL.Add('select d1 d, idobject, data, 1 hours');
five.SQL.Add('from t');
five.SQL.Add('union all');
five.SQL.Add('select d2 d, idobject, data, 2 hours');
five.SQL.Add('from t');
five.Parameters.ParamByName('g').Value:= FormatDateTime( 'dd.mm.yyyy', Present);
five.Open;
end;
ошибка 'incorrect syntax near the keyword 'with'' возникает после выполнения строки
Код:
five.Open;

Последний раз редактировалось kate158; 17.05.2009 в 18:07.
kate158 вне форума Ответить с цитированием
Старый 17.05.2009, 20:32   #14
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

ты пишешь
Цитата:
SQLSERVER
имелся в виду MS SQL? какая версия?

суть такая: прежде чем накручивать юнионы тебе нужно получить кусок данных за указанный период и это можно сделать кучей способов
если есть какая-нить разработческая приблуда, да хоть SQLExplorer, то попробуй в нем запустить такой запрос
Код:
with
t as
(
select *
from secondtable
)

select * from t

Последний раз редактировалось soleil@mmc; 17.05.2009 в 20:36.
soleil@mmc вне форума Ответить с цитированием
Старый 17.05.2009, 21:33   #15
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию

MS SQL SERVER 2000

Последний раз редактировалось kate158; 18.05.2009 в 09:24.
kate158 вне форума Ответить с цитированием
Старый 18.05.2009, 12:51   #16
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
Хорошо

ииии-ххх-аааа!
кажется, получилось!!! вот код.
Код:
procedure TForm1.BitBtn12Click(Sender: TObject);
var
Present: TDateTime;
begin
Present:= DateTimePicker1.Date;
five.SQL.Clear; five.SQL.Add('select case x.n when 1 then d1');
five.SQL.Add('when 2 then d2');
five.SQL.Add('when 3 then d3');
five.SQL.Add('when 4 then d4');
five.SQL.Add('when 5 then d5');
five.SQL.Add('when 6 then d6');
five.SQL.Add('when 7 then d7');
five.SQL.Add('when 8 then d8');
five.SQL.Add('when 9 then d9');
five.SQL.Add('when 10 then d10');
five.SQL.Add('when 11 then d11');
five.SQL.Add('when 12 then d12');
five.SQL.Add('when 13 then d13');
five.SQL.Add('when 14 then d14');
five.SQL.Add('when 15 then d15');
five.SQL.Add('when 16 then d16');
five.SQL.Add('when 17 then d17');
five.SQL.Add('when 18 then d18');
five.SQL.Add('when 19 then d19');
five.SQL.Add('when 20 then d20');
five.SQL.Add('when 21 then d21');
five.SQL.Add('when 22 then d22');
five.SQL.Add('when 23 then d23');
five.SQL.Add('else d24 end d,');
five.SQL.Add('idobject,');
five.SQL.Add('data,');
five.SQL.Add('case x.n when 1 then 1');
five.SQL.Add('when 2 then 2');
five.SQL.Add('when 3 then 3');
five.SQL.Add('when 4 then 4');
five.SQL.Add('when 5 then 5');
five.SQL.Add('when 6 then 6');
five.SQL.Add('when 7 then 7');
five.SQL.Add('when 8 then 8');
five.SQL.Add('when 9 then 9');
five.SQL.Add('when 10 then 10');
five.SQL.Add('when 11 then 11');
five.SQL.Add('when 12 then 12');
five.SQL.Add('when 13 then 13');
five.SQL.Add('when 14 then 14');
five.SQL.Add('when 15 then 15');
five.SQL.Add('when 16 then 16');
five.SQL.Add('when 17 then 17');
five.SQL.Add('when 18 then 18');
five.SQL.Add('when 19 then 19');
five.SQL.Add('when 20 then 20');
five.SQL.Add('when 21 then 21');
five.SQL.Add('when 22 then 22');
five.SQL.Add('when 23 then 23');
five.SQL.Add('else 24 end hours');
five.SQL.Add('from secondtable');
five.SQL.Add('inner join (select 1 n union all select 2 union all select 3 union all select 4 union all select 5 union all');
five.SQL.Add('select 6 union all select 7 union all select 8 union all select 9 union all select 10 union all');
five.SQL.Add('select 11 union all select 12 union all select 13 union all select 14 union all');
five.SQL.Add('select 15 union all select 16 union all select 17 union all select 18 union all select 19 union all');
five.SQL.Add('select 19 union all select 20 union all select 21 union all select 22 union all  select 23 union all select 24) x on 1=1' );
five.SQL.Add('where 0=0');
five.SQL.Add('and DATA=:g');
five.SQL.Add('and idobject =''Объект 1'' or idobject =''Объект 2'' or idobject =''Объект 3'' or idobject =''Объект  4''');
five.SQL.Add('or idobject =''Объект 5''  or idobject =''Объект 6' or idobject =''Объект 7'' or idobject =''Объект 8''');
five.SQL.Add('or idobject =''Объект 9'' or idobject =''Объект 10'' or idobject =''Объект 11'' or idobject =''Объект 12''');
five.SQL.Add('or idobject =''Объект 13'' or idobject =''Объект 14'' or idobject =''Объект 15'' or idobject =''Объект 16'' or idobject =''Объект 17''');
five.SQL.Add('or idobject =''Объект 18'' or idobject =''Объект 19'' or idobject =''Объект 20'' or idobject =''Объект 21''');
five.SQL.Add('or idobject =''Объект 22'' or idobject =''Объект 23'' or idobject =''Объект 24''');
five.Parameters.ParamByName('g').Value:= FormatDateTime( 'dd.mm.yyyy', Present);
five.Open;
edit6.Text:=inttostr(DBGrid6.DataSource.DataSet.RecordCount);
end;
может, кому-нибудь пригодится. I feel happy
kate158 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка строки из таблицы Tanusha SQL, базы данных 0 16.03.2009 10:19
Вставка/импорт массива значений из текстового файла в столбец таблицы bungler Microsoft Office Excel 4 08.01.2009 19:09
Умножение строки на столбец. ReDev1L Помощь студентам 6 21.10.2008 22:31
очень срочно нужен макрос на транспонирование таблицы kievlyanin Microsoft Office Excel 10 25.06.2008 13:20
Как частично скрыть строки таблицы... krupnoff PHP 11 21.08.2007 23:49