创建视图的问题(100分)

  • 主题发起人 主题发起人 yc-zhj
  • 开始时间 开始时间
Y

yc-zhj

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序运行中创建视图用的是:ADOCOMMAND
代码如下:
s:='create view view_name as select * from table_name where run_date=:d1';
adocommand1.CommandText:=s;
adocommand1.Parameters.ParamByName('d1').Value:='2002.09.23';
adocommand1.Execute;
程序以执行。就报错。说在关键子‘view'附近有语法错误。但是如果我不带参数,则程序执行
正常,难道在创建视图是不能用参数吗,恳请各位大虾帮助解决这个问题
 
不应该带参数。你用它创建表时带参数也不对
 
你调用的是DDL, 和一般的DML不一样...他必须不带动态参数.
你可以这样用
S:='create view view_name as select * from table_name where run_date=:%s';
adocommand1.CommandText:=Format(s, FormatDateTime('yyyy-mm-dd', now));
 
这个当然错误,你第一次运行时候已经创建了,第二次当然错误(已经有了)!
建议:采用存储过程:
传递@dtbegin进去:
然后创建临时视图,运算后返回结果!
日期最好这样写:run_date >= CONVERT(DATETIME,'''+@dtbegin+''', 102
 
不能有参数阿
 
多人接受答案了。
 
后退
顶部