SQLite3框架源代码下载
01]基本设置FDQuery1.Connection
一定要写 满 绝对路径
02]执行查询SQL语句
03]执行 非查询SQL语句
04]返回所有数据 和所有 列名, 生成网页HTML格式,方便导出数据
05]FireDAC中FDQuery1中SQL语句中的参数使用
09FireDAC之FDQuery1.Filter := 'id >= 2';学习
放一个 FDPhysSQLiteDriverLink1到ServerModule上
// uses FireDAC.Phys.SQLite 之后, 可不用添加 TFDPhysSQLiteDriverLink //访问SQLite 文件数据库
FDQuery1.Connection := UniMainModule.FDConnection1; UniMainModule.FDConnection1.LoginPrompt := false; // 取消登录提示框 UniMainModule.FDConnection1.Open('DriverID=SQLite;Database=test1.Sqlite3');
FDQuery1.Open('select id,name,info from atb');
FDQuery1.ExecSQL('INSERT INTO atb VALUES( (select max(id)+1 from atb),''aName'',''aInfo'')');
04]返回所有数据 和所有 列名, 生成网页格式,方便导出数据
procedure UniDBGridToHTML(aFDquery :TFDQuery;aHTMLFileName:string); var aHTMLtext: TstringList; j: integer; begin aHTMLtext := TstringList.Create; aHTMLtext.Add ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ' + '<html> <head> <title></title> </head> ' +'<style> table{width:400px;margin:0 auto;border:1px solid #000000;border-collapse:collapse;}th,td{border: 1px solid #000000;text-align:center;}</style>' + ' <table border="1"; width=1000px; > ' ; aHTMLtext.Add(' <tr > '); for j := 1 to aFDquery.FieldCount do begin aHTMLtext.Add('<td>'); aHTMLtext.Add(aFDquery.Fields.FieldByNumber(j).FieldName); // 列 名 aHTMLtext.Add('</td>'); end; aHTMLtext.Add(' </tr> '); aFDquery.First; while not(aFDquery.Eof) do begin aHTMLtext.Add(' <tr > '); for j := 1 to aFDquery.FieldCount do begin aHTMLtext.Add('<td>'); aHTMLtext.Add(aFDquery.Fields.FieldByNumber(j).AsString); // 所有 值 aHTMLtext.Add('</td>'); end; aHTMLtext.Add(' </tr> '); aFDquery.Next; end; aHTMLtext.Add('</table> </body> </html> '); aHTMLtext.SaveToFile(aHTMLFileName); aHTMLtext.Free; end;
procedure TMainForm.UniButton1Click(Sender: TObject); begin UniDBGridToHTML(FDquery1,'aa.html');//调用 end;
05]FireDAC中FDQuery1中SQL语句中的参数使用
双击
FDQuery1,SQL语句中 以冒号开头就是参数,后面就是参数名
然后第二Parameters页,左边列表就有就该参数名,然后给参数的DataType,Value值,再点Execute,就可看到查询结果。
其后 将上面的 界面,变成代码实现即可
procedure TForm13.Button1Click(Sender: TObject);
begin
FDQuery1.SQL.Text:='select * from userinfo where username like :aname';
FDQuery1.ParamByName('aname').DataType :=ftString;
FDQuery1.ParamByName('aname').Value:='%s%';
FDQuery1.Open();
end;
多个参数写法
FDconnection1.ExecSQL('insert into Categories(CategoryName, Description, Picture) ' +
'values(:N, :D, :P)', ['New category', 'New description', $0334]);
FDQuery1.Refresh;
参数的用途:
4主从表.把FDQuery2的属性MasterSource设置
07]FDquery1可在设计的时候,直接执行SQL语句
前提是FDConnection1已连接,双击
FDQuery1
FDquery1Active无所谓true,false
procedure DBGridToCSV(aFDquery: TFDQuery; aCSVFileName: string); // CSV格式 var aCSVtext: TstringList; i, j: integer; tempStr: string; begin aCSVtext := TstringList.Create; tempStr := ''; //第一行所有 的列名 for j := aFDquery.FieldCount downto 1 do tempStr := aFDquery.Fields.FieldByNumber(j).FieldName + ',' + tempStr; tempStr := Copy(tempStr, 0, Length(tempStr) - 1); // 去掉最后一个 , aCSVtext.Add(tempStr); aFDquery.First; //所有 数据 导出 while not(aFDquery.Eof) do begin tempStr := ''; for j := aFDquery.FieldCount downto 1 do begin if ansiPos(',',aFDquery.Fields.FieldByNumber(j).AsString)>0 then tempStr:='"'+ aFDquery.Fields.FieldByNumber(j).AsString +'"' + ',' + tempStr //如果单元格内点逗,整个单元外加双引号 else tempStr := aFDquery.Fields.FieldByNumber(j).AsString + ',' + tempStr; end; tempStr := Copy(tempStr, 0, Length(tempStr) - 1); // 去掉最后一个 , aCSVtext.Add(tempStr); aFDquery.Next; end; aCSVtext.SaveToFile(aCSVFileName); aCSVtext.Free; end;
09]FireDAC之FDQuery1.Filter := 'id >= 2';学习
procedure TMainForm.UniButton5Click(Sender: TObject);
begin
UniMainModule.FDQuery1.SQL.Text :='SELECT * FROM user ';
UniMainModule.FDQuery1.Open();
UniMainModule.FDQuery1.Filter := 'id >= 2';
UniMainModule.FDQuery1.Filtered := True;
if UniMainModule.FDQuery1.FindFirst then
repeat
unilistbox1.Items.Add(UniMainModule.FDQuery1.Fields.Fields[1].AsString) ;
until not UniMainModule.FDQuery1.FindNext
end;
var i: Integer; begin FDQuery1.Open('SELECT * FROM your_table'); while not FDQuery1.Eof do begin // 处理每一行 for i := 0 to FDQuery1.FieldCount - 1 do begin // 输出字段名和值 ShowMessage(FDQuery1.Fields[i].FieldName + ': ' + FDQuery1.Fields[i].AsString); end; FDQuery1.Next; end; FDQuery1.Close; end;