目录
1 简介
2 需要的窗体控件很简单
3 定义字段并插入几条记录
4 其他操作
4.1 数据集保存为csv文件
4.2 清空数据
4.3 加载csv文件
5 运行程序
6 导出文件
1 简介
在某些数据操作需求特别简单的情况下,我们希望不要安装任何数据库,甚至连一个驱动dll都不要,因为这些驱动dll可能涉及到版本甚至跨平台问题。这种简单需求,可以直接使用csv文件作为数据集来进行增查删改操作。注意,这不是用某些数据库映射csv文件作为数据库的一个表。
这种直接操作csv文件数据集好处不少,比如不用安装任何驱动,支持跨平台,可以直接使用文本编辑器修改文件,体积极小容易发布等。当然Lazarus还有其他可用的类似方式,比如直接操作电子表格文件、dbf文件等,都不需要安装驱动,都可以实现增查删改功能。
这里简单介绍把csv映射为数据集以及相关的简单操作。
2 需要的窗体控件很简单

核心控件就是这个 CSVDataset,位于控件集的Data Access页签中。

3 定义字段并插入几条记录
在FormCreate事件中,检查是否存在指定名称的csv文件,如果存在就直接加载。如果不存在,则定义字段信息,然后用代码插入几条记录:
procedure TForm1.FormCreate(Sender: TObject);
begin
  CSVDataset1.FileName := Application.Location + FILENAME;
  CSVDataset1.CSVOptions.FirstLineAsFieldNames := true;
  // 程序首次运行,数据文件不存在.
  // 必须创建字段信息.建立数据集。
  if not FileExists(CSVDataset1.FileName) then begin
    with CSVDataset1 do begin
      FieldDefs.Add('FirstName', ftString, 20);
      FieldDefs.Add('LastName', ftstring, 20);
      FieldDefs.Add('City', ftString, 20);
      FieldDefs.Add('Address', ftString, 30);
      FieldDefs.Add('Birthdate', ftDate);
      CreateDataset;
      // 打开数据集...
      Open;
      // ... 增加数据:
      Append;
      FieldByName('FirstName').AsString := 'Walter';
      FieldByName('LastName').AsString := 'Mellon';
      FieldByName('City').AsString := 'Oklahoma City';
      FieldByName('Address').AsString :=  '1261, Main Street';
      FieldbyName('Birthdate').AsDateTime := EncodeDate(1980, 1, 1);
      Post;
      Append;
      FieldByName('FirstName').AsString := 'Mario';
      FieldByName('LastName').AsString := 'Speedwagon';
      FieldByName('City').AsString := 'Hollywood';
      FieldByName('Address').AsString :=  '1500, Hollywood Blvd';
      FieldbyName('Birthdate').AsDateTime := EncodeDate(1982, 12, 17);
      Post;
      Append;
      FieldByName('FirstName').AsString := 'Anna';
      FieldByName('LastName').AsString := 'Mull';
      FieldByName('City').AsString := 'Los Angeles';
      FieldByName('Address').AsString :=  '2202, Capitol Square';
      FieldbyName('Birthdate').AsDateTime := EncodeDate(1982, 12, 17);
      Post;
    end;
  end;
  CSVDataset1.Open;
end;  4 其他操作
4.1 数据集保存为csv文件
procedure TForm1.Button1Click(Sender: TObject);
begin
  CSVDataset1.SaveToCSVFile('exported.csv');
end; 4.2 清空数据
procedure TForm1.Button2Click(Sender: TObject);
begin
  CSVDataset1.Clear;
end; 4.3 加载csv文件
procedure TForm1.Button3Click(Sender: TObject);
begin
  CSVDataset1.LoadFromCSVFile('exported.csv');
end; 5 运行程序

6 导出文件

导出的csv文件如果有中文,需要以utf8格式查看。



















