在formshow事件中想对adoquery1.sql.add进行'select * from 表名'的操作,由于表名是变量t,我是通过这样实现的
a:='select * from'+ t;//t为一赋值变量
adoquery1.sql.close;
adoquery1.sql.clear;
adoquery1.sql.add(a);
adoquery1.sql.open;
可是这样有错误,应该怎么操作呢,其实就是动态给adoquery连接表。
a:='select * from'+ t;//t为一赋值变量
adoquery1.sql.close;
adoquery1.sql.clear;
adoquery1.sql.add(a);
adoquery1.sql.open;
可是这样有错误,应该怎么操作呢,其实就是动态给adoquery连接表。
t:=表名;
a:='select * from'+ quotedstr(t);//t为一赋值变量
begin
close;
sql.clear;
sql.add('select * from '''+InfoTable+''' [order by FieldsName ]');
prepared;
open;end;
adoquery1.open;!
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(a);
adoquery1.open;
s: String;
sql: String;
begin
s := 'LX1';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM '+s);
ADOQuery1.Open;
end;
我执行过了,没有错误的。
procedure TForm1.FormShow(Sender: TObject);
var
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM '+t);
ADOQuery1.Open;
end;
procedure TForm1.FormShow(Sender: TObject);
var
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM '''+t);
ADOQuery1.Open;
end;
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(a);
adoquery1.sql.open;
比如:'select * from'+t 和'select * from '+t
编译后分别为'select * fromt'和'select * from t'
2。下次出现错误,要把错误信息贴出来,这样才便于大家来判断。
我是在主界面main的onCreate事件中初始化登陆界面login的:
procedure TForm1.FormCreate(Sender: TObject);
var
load:Tload;
begin
load:=Tload.Create(self);//建立登录窗口
load.ShowModal; //显示登录窗口
end;
而t是在main的ONshow中赋值的:
procedure TForm1.FormShow(Sender: TObject);
var
t:=xlz;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM '+t);
ADOQuery1.Open;
end;
login界面中取消按钮的代码是:
Application.Terminate;
问题怎么解决呢?
procedure TForm1.FormCreate(Sender: TObject);
var
mr:=integer;
begin
t:='';
with Tload.Create(self) do ) //建立登录窗口
try
mr:=ShowModal;//显示登录窗口
finally
Release;
end;
if mr=MrOK then
t:=表名;
else Application.Terminate;
end;login界面中取消按钮的代码是:
ModalResult:=MrCancel;
问题怎么解决呢?
procedure select(Fieldname:array of string;tablename:string);
var s:string;
begin
s:='select'+Fieldname+'from '+ tablename;
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add(s);
ADOQuery1.open;
end;
当你调用进你就当按上面的参数对照套进行去就可了!
我想应该加入到try...except...end里面吧
s:="select * from %s"
要用到具体表的时候就这样
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add(format[s,表名]);
ADOQuery1.open;
你查一查delphi中format的使用方法应该可以解决你的问题!
之前加个判断了。
if Trim(t) = '' then Exit;
var
ShowMessage(XLZ); --估计是XLZ的值或者类型本来就有问题
t:=xlz;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM '+t);
ShowMessage(ADOQuery1.Sql.Text);
ADOQuery1.Open;
end;
var
t:string;
begin
t:=DBEdit.Text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM '+''''+t+'''');
ADOQuery1.Open;
end;