我现在想用AdoQuery.sql调用文件来创建数据库视图,但在执行过程中有以下错误:
在create 附近有错误,
我的文件内容如下:
CREATE VIEW dbo.VIEW_MONTH_TOLL AS
( SELECT work_date,station_id, SUM(CASE WHEN vehicle_class=1 AND vehicle_case<>6 THEN toll_receivable ELSE 0 END ) AS type1, SUM(CASE WHEN vehicle_class=2 AND vehicle_case<>6 THEN toll_receivable ELSE 0 END ) AS type2, SUM(CASE WHEN vehicle_class=3 AND vehicle_case<>6 THEN toll_receivable ELSE 0 END ) AS type3, SUM(CASE WHEN vehicle_class=4 AND vehicle_case<>6 THEN toll_receivable ELSE 0 END ) AS type4, (SELECT SUM(TOLL) TOLL
FROM TBL_WASTE_STATION_SPECIAL
WHERE TBL_WASTE_STATION_SPECIAL.WORK_DATE=tbl_rpt_vehtype_toll_yz.WORK_DATE) AS BAD_TOLL FROM tbl_rpt_vehtype_toll_yz
GROUP BY work_date,station_id )
CREATE VIEW dbo.VIEW_ORGANINFO AS SELECT STATION_ID AS OWNER_ID, NODE_NAME AS ORGAN_NAME, STATION_ID & 0xFF00 AS AINOWNER_ID, NODE_CLASS FROM dbo.TBL_NODE_INFOR WHERE (NET_TOLL_FLAG = 1) AND (NODE_ID = 0)最后我发现,是第二个create veiw有错,如果我只放一个create,那不会报错,但放上两个旧有错误,我想应该是两个create之间应该加一个分离的语句,如go,但加上go,就出现在go附近有错误的提示。不知何故!
注:如果在文件内写上边两个中的任意一个都不会出错。
请教!
在create 附近有错误,
我的文件内容如下:
CREATE VIEW dbo.VIEW_MONTH_TOLL AS
( SELECT work_date,station_id, SUM(CASE WHEN vehicle_class=1 AND vehicle_case<>6 THEN toll_receivable ELSE 0 END ) AS type1, SUM(CASE WHEN vehicle_class=2 AND vehicle_case<>6 THEN toll_receivable ELSE 0 END ) AS type2, SUM(CASE WHEN vehicle_class=3 AND vehicle_case<>6 THEN toll_receivable ELSE 0 END ) AS type3, SUM(CASE WHEN vehicle_class=4 AND vehicle_case<>6 THEN toll_receivable ELSE 0 END ) AS type4, (SELECT SUM(TOLL) TOLL
FROM TBL_WASTE_STATION_SPECIAL
WHERE TBL_WASTE_STATION_SPECIAL.WORK_DATE=tbl_rpt_vehtype_toll_yz.WORK_DATE) AS BAD_TOLL FROM tbl_rpt_vehtype_toll_yz
GROUP BY work_date,station_id )
CREATE VIEW dbo.VIEW_ORGANINFO AS SELECT STATION_ID AS OWNER_ID, NODE_NAME AS ORGAN_NAME, STATION_ID & 0xFF00 AS AINOWNER_ID, NODE_CLASS FROM dbo.TBL_NODE_INFOR WHERE (NET_TOLL_FLAG = 1) AND (NODE_ID = 0)最后我发现,是第二个create veiw有错,如果我只放一个create,那不会报错,但放上两个旧有错误,我想应该是两个create之间应该加一个分离的语句,如go,但加上go,就出现在go附近有错误的提示。不知何故!
注:如果在文件内写上边两个中的任意一个都不会出错。
请教!
解决方案 »
- idhttp 如何判断依据成功访问了一个网址
- 多线程访问全局变量 Tlist 当修改取出来的数据进行修改的时候要不要加锁?
- 请问Indy的TIdTCPClient开发的客户端能不能使用TIdTCPStream发送数据?
- 咳!超级新手来提问!字符串问题
- 小光棍节(1月11日)将要去见一个mm,散分,收集祝福:)如果本贴超过了200回复,再开贴继续
- socket问题,为什么会提示指定的网络名不可用.
- 为什么出错:“行句柄引用了一个已被删除的行或被标识未被”和“删除的行”?
- delphi打开网页怎么给网页中的文本框复制
- dsgnintf.pas
- 如何启动interbase?
- 动态生成的vcl控件,他们的事件应该写在哪里
- delphi+sqlserver自定义报表出售
利用AdoQuery.sql.loadfromfile('ddd.txt')可以执行多条sql语句!!
比如多条insert、update、create table等等,
但是在执行多条create view和create procedure时,好像有错,希望各位大虾帮忙卡看什么原因
DataModule_z.sUserName//计算机名称
DataModule_z.spassword//数据库密码
用以下方法必须还要OSQL.EXE文件(文件在SQL Server 下的Binn中)
DataModule_z.Sosql:='osql /U ' + DataModule_z.sUserName + ' /P ' + DataModule_z.spassword + ' /i Motorcycle1.sql';
winexec(PCHAR(DataModule_z.Sosql),sw_hide);
请讲OSQL.EXE文件方在当前程序路径下。
你说的不对,只要在计算机上安装了sql server,就不用再管osql.exe在什么位置了,系统的path中已经指明它的路径了,也就是说,不需要你在当前程序路径下放osql.exe文件了
利用AdoQuery.sql.loadfromfile('ddd.txt')可以执行多条sql语句!!
比如多条insert、update、create table等等,
但是在执行多条create view和create procedure时,好像有错,希望各位大虾帮忙卡看什么原因
==============================================================
“噔噔噔噔噔”是什么,是我晕。
你是从哪里知道这个秘密的,你是不是看过有的书上有过执行多条SQL语句的情况!告诉你吧,那是经过处理的。
那样的程序的思路是:
1.载入*.sql或其他文本文件
2.查找第一个;前的语句
3.执行第一个SQL语句
4.删除第一个;前的语句包括第一个;号
5.重复第二步的工作直到程序中没有;为止