try //从文件中读取初始化信息 ts:=Tstringlist.Create; ts.loadfromfile('aa.sql'); except showmessage(1,'文件加载失败,请联系技术人员!'); end; try for i:=0 to ts.Count-1 do begin if ts[i]<>'GO' then ADOQuery1.SQL.Add(ts[i]) else//sqlserver生成的脚本中包含go就运行 begin ADOQuery1.ExecSQL; // Label1.Caption:='完成操作:'+inttostr(i)+'行'; update; adoquery1.SQL.Clear; end; end; except showmessage(1,'数据初始化失败,请联系技术人员!'); end;
isql -S abc -U sa -P -d test -i D:\temp\Update.sql参数说明如下:
-S :服务器名称;
-U :用户名;
-P :密码;
-d :数据库名称;
-i :sql脚本路径;
要不然, 你每個 go 之前, 都要分開執行一次
那运行的机器上要安装“isqlw.exe”
直接在数据服务器上isqlw.exe运行不好吗?用存储过程要好些。或者动态转载到ADOQuery,EeecSQL
我的意见是修改数据库最好是用建模工具进行更改。都有记录啊
osql -S abc -U sa -P -d test -i D:\temp\Update.sql只要将oslq.exe文件放在脚本文件附加就可以了.
你可能理解错误,大家只所以需要这样执行,是因为这部分工作希望是用户来执行,而用户怎么会弄建模工具之类的东东.
ts:=Tstringlist.Create;
ts.loadfromfile('aa.sql');
except
showmessage(1,'文件加载失败,请联系技术人员!');
end;
try
for i:=0 to ts.Count-1 do
begin
if ts[i]<>'GO' then
ADOQuery1.SQL.Add(ts[i])
else//sqlserver生成的脚本中包含go就运行
begin
ADOQuery1.ExecSQL;
// Label1.Caption:='完成操作:'+inttostr(i)+'行';
update;
adoquery1.SQL.Clear;
end;
end;
except
showmessage(1,'数据初始化失败,请联系技术人员!');
end;