鸟问题(50分)

  • 主题发起人 主题发起人 kingdom
  • 开始时间 开始时间
K

kingdom

Unregistered / Unconfirmed
GUEST, unregistred user!

TQuery怎样动态查询,详细点
 
with query do
begin
sql.text:='select * From table1...';
open;
end;
是这个吗?
 
鸟回答:
去查delphi帮助,或delphi书籍.
用parameters.或更新SQL属性.
很不详细,给点小分.
 
Query1.close;
Query1.SQL.clear;
Query1.sql.add('SELECT * FROM table1 WHERE ......')
Query1.open;

OK?
 
with query do
begin
sql.close;
sql.unprepare;
sql.clear;
sql.add('select * From table1...');
sql.prepare;
sql.open;
end;
 
答案不唯一:
with query1 do
begin
close;
sql.clear;
unprepared;
sql.add('select 显示的字段名 from 表名 where 条件');
if not(prepared) then
prepared;
open;
end;
这是一般模式!
 
我把我的要求写一下吧:
用SQL
查找一字段的固定值,并且其纪录日期为某一范围

我是这样做的,接下来不知咋办,怎样给i_fund_account赋值?
SQL.Add( 'select * from runbase.. fundlogs where i_fund_account=:i_fund_account')
SQl.Add('and i_date>="' + sStartDate + '" and i_date<="' + sEndDate + '"' );
 
Query.ParamByName('i_fund_account').AsInteger:=?
 
Query.ParamByName('i_fund_account').value:=?

 
SQL.Add( 'select * from runbase.. fundlogs where i_fund_account='+i_fund_account)
SQl.Add('and i_date>="' + sStartDate + '" and i_date<="' + sEndDate + '"' );

(如果i_fund_account是整型要用inttostr(i_fund_account))
 
parambyname('sStartDate').asDateTime:=DateTimePicker1.asDateTime;
 
为什么前面用参数,后面的日期不使用参数呢,
个参数赋值要注意类型匹配;

with Qry do
begin
SQL.Clear;
SQL.Add('select * from runbase.. fundlogs where i_fund_account=:i_fund_account')
SQl.Add(' and i_date>=:sStartDate + '" and i_date<=:sEndDate' );
Parambyname('i_fund_account').asinteger:=i_fund_account;
Parambyname('StartDate').asdatetime:=strtodatetime(sStartDate);
Parambyname('EndDate').asdatetime:=strtodatetime(sEndDate);
Prepare;
Open;
end;
 
楼上的稍微改动以下即可:i_data
 
多人接受答案了。
 
后退
顶部