我的完整代码如下: if(stuQuery->Active) stuQuery->Close(); stuQuery->SQL->Clear(); stuQuery->SQL->Add("create view view1 as select * from exindex where teacher=:teacher"); stuQuery->ParamByName("teacher")->Value=username; stuQuery->ExecSQL(); 现在运行提示“incorrect syntax near the keyword view"! 如果”您没有权限创建该表的视图,或者数据库没有分配足够的资源来支持这项操作!“那我用SQL SERVER的QUERY ANALYZER里试了,也没问题呀。
创建视图的SQL中不允许带参数。请除掉参数再试一下。
Query1->SQL->text="create view view1 as select * from table1 where column1=1"
if(stuQuery->Active)
stuQuery->Close();
stuQuery->SQL->Clear();
stuQuery->SQL->Add("create view view1 as select * from exindex where teacher=:teacher");
stuQuery->ParamByName("teacher")->Value=username;
stuQuery->ExecSQL();
现在运行提示“incorrect syntax near the keyword view"!
如果”您没有权限创建该表的视图,或者数据库没有分配足够的资源来支持这项操作!“那我用SQL SERVER的QUERY ANALYZER里试了,也没问题呀。
但是我创建视图的目的就是要从表里提出teacher=username的内容,创建一个视图,用于下面排序等工作,而username又是根据用户的输入而定的一项,不是一个固定值,怎样的语句才能实现这个功能呢?
参数的获得:比如用户名,你应该有表记录登录的用户名吧,用关联查询获得这个参数。
即创建视图的SQL语句中对参数字段使用关联查询。
这里的username我把它定义为AnsiString username;然后在用户登陆时把它赋值,然后想用它做为参数查询。