各位大虾:
小弟最近遇到一个非常奇怪的问题,小弟做了一个软件,最近作了点修改,添加了一些语句,如下:
adoquery2.SQL.Clear;
adoquery2.SQL.Text:='delete from '+tablename;
try
adoquery2.ExecSQL;
except
adoquery2.SQL.Clear;
adoquery2.SQL.Text:='select * into '+tablename+' from tempbqrint';
adoquery2.ExecSQL;
end;
tablename是临时表表名,在我的机器上编译通过,并且运行的很好,我在98,2000(繁体)下都能运行,但是在现场时总是提示:
行1:‘-’附近语法错误
我通过showmessage追踪到就是在执行以上“adoquery2.ExecSQL;”时出现的问题,奇怪的是,在那边的机器上不论是98,2000(繁体)都会有这样的提示,而拿到我这里后,不论哪台都可以运行,我真的搞不懂,我试过将mdac升级到2.8,将bde重装,都无济于事!不知哪位大虾遇到过,可以不吝赐教!
小弟最近遇到一个非常奇怪的问题,小弟做了一个软件,最近作了点修改,添加了一些语句,如下:
adoquery2.SQL.Clear;
adoquery2.SQL.Text:='delete from '+tablename;
try
adoquery2.ExecSQL;
except
adoquery2.SQL.Clear;
adoquery2.SQL.Text:='select * into '+tablename+' from tempbqrint';
adoquery2.ExecSQL;
end;
tablename是临时表表名,在我的机器上编译通过,并且运行的很好,我在98,2000(繁体)下都能运行,但是在现场时总是提示:
行1:‘-’附近语法错误
我通过showmessage追踪到就是在执行以上“adoquery2.ExecSQL;”时出现的问题,奇怪的是,在那边的机器上不论是98,2000(繁体)都会有这样的提示,而拿到我这里后,不论哪台都可以运行,我真的搞不懂,我试过将mdac升级到2.8,将bde重装,都无济于事!不知哪位大虾遇到过,可以不吝赐教!
adoquery2.SQL.Add('delete from '+tablename);
try
showmessage(adoquery2.SQL.text); //显示出来看看
//adoquery2.ExecSQL;
except
adoquery2.SQL.Clear;
adoquery2.SQL.Text:='select * into '+tablename+' from tempbqrint';
adoquery2.ExecSQL;
end;
强烈要请楼主把这句贴到SQL SERVER查询分析器执行下
procedure TForm1.Button1Click(Sender: TObject);
var
tablename:string;
begin
tablename:='test';
with adoquery1 do
begin
close;
sql.clear;
sql.add('if exists(select * from sysobjects where type=''u'' and name='''+tablename+''')');
sql.add('delete '+tablename);
sql.add('else select * into '+tablename+' from tmp');
showmessage(sql.Text);
execsql;
end;
end;
var
tablename:string;
begin
tablename:='test';
with adoquery1 do
begin
close;
sql.clear;
sql.add('if exists(select * from sysobjects where type=''u'' and name='''+tablename+''')');
sql.add('delete '+tablename);
sql.add('else select * into '+tablename+' from tempbqrint');
showmessage(sql.Text);
execsql;
end;
end;