我在Delphi中用adoquery组件连接数据库后,创建一个视图并从视图中进一步查询我所需要的数据,
简要代码如下:
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('create view le as select id,count(leave) as ll from checking where leave=1 group by id');//A
adoquery1.sql.add('select * from view'); //B
adoquery1.execsql;A行的创建视图的代码应该没错吧?
B行会报错,说select附近有错。问题:1、上面创建视图的代码是否有错?2、若有错则怎么创建视图?3、若没错则怎么实现从视图中select数据?

解决方案 »

  1.   

    第二个语句应该是:
    select * from le 
    --le 是你的视图名。
      

  2.   

    我打错了是'select * from le'
      

  3.   

    在同一段语句中,注意中间是否有空格相隔,可以在中间加下列行:
    adoquery1.sql.add('create view le as select id,count(leave) as ll from checking where leave=1 group by id');//A
    adoquery1.sql.add('  '); //空格隔开
    adoquery1.sql.add('go  ');//先提交生成视图
    adoquery1.sql.add('select * from view'); //B
      

  4.   

    [在同一段语句中,注意中间是否有空格相隔,可以在中间加下列行:
    adoquery1.sql.add('create view le as select id,count(leave) as ll from checking where leave=1 group by id');//A
    adoquery1.sql.add(' '); //空格隔开
    adoquery1.sql.add('go ');//先提交生成视图,注意go后加两个空格。

    adoquery1.sql.add('select * from view'); //B
      

  5.   

    问题解决我先用sql sever 2000建立了le视图然后adoquery1.sql.add('select * from le'); 就可以了谢谢各位
     
      

  6.   

    視圖的調用與平時的sql語句是一樣的調用方法:
                       qry_BaseTemp.Close;
                      qry_BaseTemp.SQL.Clear;
                      qry_BaseTemp.SQL.Add( ' //SQL語句' );//加你的視圖名
                      qry_BaseTemp.Open;