![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мужики, помогите разобраться c create view . [D5, MSSQL]
B_A_V © (2002-04-09 08:33:00)Пишу код (СОЗДАЮ ТАБЛИЦУ ПРОСМОТРА):
procedure TFm_svod.BitBtn2Click(Sender: TObject);
begin
ADOQ_svod.Close;
ADOQ_svod.Parameters.ParamByName("pd5").value:=DTP_svod.Date;
ADOQ_svod.SQL.text:="create view sss7 as select * from Ysh_Pr where Data_YP <=:pd5 ";
ADOQ_svod.ExecSQL;
end;
- НЕ РАБОТАЕТ
Пишет - Incorrect syntax near the keyword "view"
Пишу код (ДЕЛАЮ ВЫБОРКУ):
procedure TFm_svod.BitBtn2Click(Sender: TObject);
begin
ADOQ_svod.Close;
ADOQ_svod.Parameters.ParamByName("pd5").value:=DTP_svod.Date;
ADOQ_svod.SQL.text:= "select * from Ysh_Pr where Data_YP <= :pd5 ";
ADOQ_svod.Open;
end;
- РАБОТАЕТ
Что посоветуете?
Самое интересное заменяю строчку
ADOQ_svod.SQL.text:="create view sss7 as select * from Ysh_Pr where Data_YP <=:pd5 ";
на
ADOQ_svod.SQL.text:="create view sss7 as select * from Ysh_Pr where Data_YP <=""2002-01-01"" ";
- ВСЕ РАБОТАЕТ
Я вообще уже запутался, бьюсь уже второй день.
wicked (2002-04-09 12:21:00) [1]потому что "create view..." и "select * from..." - это две большие разницы... первое - это data definition language, к нему mssql относится очень трепетно и щепетильно... а второе - простой select...
Johnmen (2002-04-09 12:20:00) [2]Потому, что в 1.случае нужна фактически макроподстановка,
а во 2. просто параметр...
B_A_V (2002-04-09 12:07:00) [3]А почему тогда во втором случае при выборке работает?
procedure TFm_svod.BitBtn2Click(Sender: TObject);
begin
ADOQ_svod.Close;
ADOQ_svod.Parameters.ParamByName("pd5").value:=DTP_svod.Date;
ADOQ_svod.SQL.text:= "select * from Ysh_Pr where Data_YP <= :pd5 ";
ADOQ_svod.Open;
end;
- РАБОТАЕТ
B_A_V (2002-04-09 11:15:00) [4]всем спасибо
MCFire (2002-04-09 11:07:00) [5]У тебя параметр передаётся в формате TDateTime а нужно в string.
DTP_svod.Date это число которое определяет дату а не сама дата
wicked (2002-04-09 10:20:00) [6]
> FormatDateTime("yyyy.mm.dd",DTP_svod.Date)
только не забудь, что даты пишутяс в формате "yyyy-mm-dd"... или используй convert...
Johnmen (2002-04-09 09:15:00) [7]Такой вот вариант :
...
ADOQ_svod.SQL.text:="create view sss7 as select * from Ysh_Pr where Data_YP <="""+
FormatDateTime("yyyy.mm.dd",DTP_svod.Date)+"""";
...
и ,соответственно, никаких параметров...