我以前是这样做的procedure TF_GZCL.P2Click(Sender: TObject); VAR myinifile:Tinifile; TYPES,SQLS:STRING; X,Y:INTEGER; begin OPENDIALOG1.InitialDir:=ExtractFilePath(Paramstr(0))+'..\SQLP\'; IF OPENDIALOG1.Execute THEN BEGIN try myinifile:=Tinifile.Create(OPENDIALOG1.FileName); except abort; APPLICATION.MessageBox('文件读取错误!','林康软件',MB_OK+MB_ICONWARNING); EXIT; end ; TYPES:=myinifile.Readstring('SQLPROGRAM','PROGNAME','ERROR'); Y:=STRTOINT(myinifile.Readstring('SQLPROGRAM','SQLCOUNT','0')); IF (TYPES='ERROR') OR (Y=0) THEN BEGIN APPLICATION.MessageBox('文件格式不正确,不能执行!','林康软件',MB_OK+MB_ICONWARNING); EXIT; END; IF MESSAGEDLG('程序执行包内容为【'+TYPES+'】,确认执行吗?',mtconfirmation,[MBYES,MBNO],1)<>Mryes THEN BEGIN EXIT; END; FOR X:=1 TO Y DO BEGIN ADOGZB.Close; ADOGZB.SQL.Clear; SQLS:=myinifile.Readstring('SQLPROGRAM','SQLT'+INTTOSTR(X),''); TYPES:=myinifile.Readstring('SQLPROGRAM','TYPE'+INTTOSTR(X),''); WHILE POS('TABLENAME',SQLS)>0 DO BEGIN SQLS:=COPY(SQLS,1,POS('TABLENAME',SQLS)-1)+'GZ'+F_MAIN.StatusBar1.Panels[1].Text+COPY(SQLS,POS('TABLENAME',SQLS)+9,LENGTH(SQLS)-(POS('TABLENAME',SQLS)+8)); END; ADOGZB.SQL.Add(SQLS); TRY IF TYPES='2' THEN ADOGZB.ExecSQL ELSE ADOGZB.Open; EXCEPT APPLICATION.MessageBox(PCHAR('程序包中共有【'+INTTOSTR(Y)+'】个任务,系统已成功执行了【'+INTTOSTR(X-1)+'】个任务,程式出现错误,不能继续执行!'),'林康软件',MB_OK+MB_ICONWARNING); EXIT; END; END; APPLICATION.MessageBox(PCHAR('程序包中【'+INTTOSTR(Y)+'】个任务全部执行成功,请查验!'),'林康软件',MB_OK+MB_ICONWARNING); END; end; ---------------------------------- INI 文件里的格式如下 [SQLPROGRAM] PROGNAME=补发扣款清零处理 SQLCOUNT=3 TYPE1=2 SQLT1=UPDATE TABLENAME SET 其他补发=0,扣款一=0,扣款二=0,扣款三=0 TYPE2=2 SQLT2=UPDATE TABLENAME SET 基础=0,职务=0,浮动=0,级别=0,工龄=0,事业津贴=0,职岗津贴=0,综合补贴=0,特岗=0,地方补贴=0,考勤奖=0,差贴=0,通讯费=0,误节车医=0,房贴=0,离退休=0,定补经费=0,其他=0,其他补发=0,养老金=0,医疗金=0,公积金=0,失业金=0,廉保金=0,所得税=0,扣款一=0,扣款二=0,扣款三=0 WHERE RIGHT(LEFT(编号,9),1)='8' TYPE3=1 SQLT3=SELECT * FROM TABLENAME ORDER BY 编号
procedure TUserInfo.FormShow(Sender: TObject);
begin
//到这里有错误,如果去掉一个就可以?
ADODataSet1.Active:=true;
ADOQuery1.Active:=true;
end;
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
adoquery1.sql.clear;
adoquery1.sql.loadfromfile('xx.txt');
adoquery1.excute;
这个*.txt文件是不是就是SQL查询分析器中保存的*.SQL文件把它改为*.TXT,要不要改动?
VAR
myinifile:Tinifile;
TYPES,SQLS:STRING;
X,Y:INTEGER;
begin
OPENDIALOG1.InitialDir:=ExtractFilePath(Paramstr(0))+'..\SQLP\';
IF OPENDIALOG1.Execute THEN
BEGIN
try
myinifile:=Tinifile.Create(OPENDIALOG1.FileName);
except
abort;
APPLICATION.MessageBox('文件读取错误!','林康软件',MB_OK+MB_ICONWARNING);
EXIT;
end ;
TYPES:=myinifile.Readstring('SQLPROGRAM','PROGNAME','ERROR');
Y:=STRTOINT(myinifile.Readstring('SQLPROGRAM','SQLCOUNT','0')); IF (TYPES='ERROR') OR (Y=0) THEN
BEGIN
APPLICATION.MessageBox('文件格式不正确,不能执行!','林康软件',MB_OK+MB_ICONWARNING);
EXIT;
END;
IF MESSAGEDLG('程序执行包内容为【'+TYPES+'】,确认执行吗?',mtconfirmation,[MBYES,MBNO],1)<>Mryes THEN
BEGIN
EXIT;
END;
FOR X:=1 TO Y DO
BEGIN
ADOGZB.Close;
ADOGZB.SQL.Clear;
SQLS:=myinifile.Readstring('SQLPROGRAM','SQLT'+INTTOSTR(X),'');
TYPES:=myinifile.Readstring('SQLPROGRAM','TYPE'+INTTOSTR(X),'');
WHILE POS('TABLENAME',SQLS)>0 DO
BEGIN
SQLS:=COPY(SQLS,1,POS('TABLENAME',SQLS)-1)+'GZ'+F_MAIN.StatusBar1.Panels[1].Text+COPY(SQLS,POS('TABLENAME',SQLS)+9,LENGTH(SQLS)-(POS('TABLENAME',SQLS)+8));
END;
ADOGZB.SQL.Add(SQLS);
TRY
IF TYPES='2' THEN ADOGZB.ExecSQL ELSE ADOGZB.Open;
EXCEPT
APPLICATION.MessageBox(PCHAR('程序包中共有【'+INTTOSTR(Y)+'】个任务,系统已成功执行了【'+INTTOSTR(X-1)+'】个任务,程式出现错误,不能继续执行!'),'林康软件',MB_OK+MB_ICONWARNING);
EXIT;
END;
END;
APPLICATION.MessageBox(PCHAR('程序包中【'+INTTOSTR(Y)+'】个任务全部执行成功,请查验!'),'林康软件',MB_OK+MB_ICONWARNING);
END;
end;
----------------------------------
INI 文件里的格式如下
[SQLPROGRAM]
PROGNAME=补发扣款清零处理
SQLCOUNT=3
TYPE1=2
SQLT1=UPDATE TABLENAME SET 其他补发=0,扣款一=0,扣款二=0,扣款三=0
TYPE2=2
SQLT2=UPDATE TABLENAME SET 基础=0,职务=0,浮动=0,级别=0,工龄=0,事业津贴=0,职岗津贴=0,综合补贴=0,特岗=0,地方补贴=0,考勤奖=0,差贴=0,通讯费=0,误节车医=0,房贴=0,离退休=0,定补经费=0,其他=0,其他补发=0,养老金=0,医疗金=0,公积金=0,失业金=0,廉保金=0,所得税=0,扣款一=0,扣款二=0,扣款三=0 WHERE RIGHT(LEFT(编号,9),1)='8'
TYPE3=1
SQLT3=SELECT * FROM TABLENAME ORDER BY 编号