1. 基本的查询语句后面加上 WHERE 1=1,便于增加查询条件。
ASkStr := \'select * from Twork where 1=1 \'; if length(cxTEworkid.Text) <> 0 then begin ASkStr := ASkStr + \' and GWORKID like \' + quotedstr(\'%\' + cxTEworkid.Text + \'%\') end;
2. 多表查询可以用一个字符串代替一个表。逻辑上更清晰。
WorkTable = \'select GWorkId from TWork where 1=1 \'; PayTable = \'select sum(GXMtotal) as SGXMtotal,GXMType from TPAY where GWorkId In \'; PayGroupBy = \' Group By GXMType \';
ASkStr := PayTable + \' ( \' + WorkTable + tmpwhere + \' ) \' + PayGroupBy;
3.自己定义一个连接函数,判断数据库初始化是否成功,便于控制。
function Tdm.InitDbOk: boolean;
begin
result := true;
if fileexists(DBFileName) then
begin
FDConn.DriverName := \'SQLite\';
FDConn.LoginPrompt := false;
FDConn.Params.Clear;
FDConn.Params.Values[\'Database\'] := DBFileName;
FDConn.Params.Values[\'DriverID\'] := \'SQLite\';
FDConn.Params.Values[\'CharacterSet\'] := \'utf8\';
try
FDConn.Connected := true;
except
result := false;
end;
end
else
result := false;
end;