一个关于数据库查询的问题(0分)

  • 主题发起人 主题发起人 lpacec
  • 开始时间 开始时间
L

lpacec

Unregistered / Unconfirmed
GUEST, unregistred user!
case ComboBox1.ItemIndex of
0,4:fstr:='select * from 助学申请 where(%s%s%s) order by %s';
19: fstr:='select * from 助学申请 where(%s%s#%s#) order by %s';
else fstr:='select * from 助学申请 where(%s%s''%s'') order by %s';
end;
with ADOQuery1 do
begin
SQL.Clear;
SQL.Add(Format(fstr,[ComboBox1.Text,sign,Edit1.Text,ComboBox1.Text]));
Prepared;
Open;
end;

请问是什么意思。中间的那么多的%s的用法是什么,谢谢
 
再delphi的帮助中,format函数的说明如下:
function Format(const Format: string; const Args: array of const): string;
看懂了吗?第一个参数是要返回的字符串,后面的为一数组,你的
[ComboBox1.Text,sign,Edit1.Text,ComboBox1.Text]就是这样的一个字符串数组,四个
%s分别代表这四个字符串。
 
谢谢,我还想问一下。系统怎么知道将%s由后面的数组代替呢?

delphi的帮助中,format函数的说明中用的是%d啊
 
ADOQry.Close;
ADOQry.SQL.Clear ;

Sdate:=Form1.Cyear.Text+'-'+Form1.Cmon.Text+'-'+Form1.Cday.Text;
s:='Select line,standard,gloztl from TqcZtl Where riqi='+'''%s'''+' order by line ASC';
s:=Format(s,[Sdate]);

ADOQry.SQL.Add(s);
ADOQry.ExecSQL ;
ADOQry.Active:=true;

%s 是字符串的
%d 是数字的

查查FORMAT函数就可以了!

 
后退
顶部