var
  slDBpath: string;
  sldb: TSQLiteDatabase;
  sltb: TSQLIteTable;
  sSQL: String;
  m: Integer;
  i: Integer;
procedure TForm1.Button1_SPClick(Sender: TObject);
begin
Form_SP_Add.ShowModal;
end;procedure TForm1.Button3_SPClick(Sender: TObject);
begin
// 设置数据库文件路径
  slDBpath := ExtractFilepath(application.exename) + 'bath.db';
  // 创建数据库连接
  sldb := TSQLiteDatabase.Create(slDBpath);
  try
    // 执行查询 ,返回主窗体    sltb := sldb.GetTable(Utf8encode('SELECT * FROM serPerson'));    try
      Form1.StringGrid1_SP.Cells[0, 0] := '序号';
      Form1.StringGrid1_SP.Cells[1, 0] := '服务人员ID';
      Form1.StringGrid1_SP.Cells[2, 0] := '服务人员名称';
      Form1.StringGrid1_SP.Cells[3, 0] := '服务人员性别';
      Form1.StringGrid1_SP.ColWidths[0] := 60;
      Form1.StringGrid1_SP.ColWidths[1] := 100;
      Form1.StringGrid1_SP.ColWidths[2] := 100;
      Form1.StringGrid1_SP.ColWidths[3] := 100;
      Form1.StringGrid1_SP.Visible := true;
      Form1.StringGrid1_SP.RowCount := sltb.Count + 1;
      m := 1;
      for i := 1 to sltb.Count do
      begin        Form1.StringGrid1_SP.Cells[0, m] := IntToStr(m);
        Form1.StringGrid1_SP.Cells[1, m] := sltb.FieldAsString(sltb.FieldIndex['serPersonID']);
        Form1.StringGrid1_SP.Cells[2, m] := sltb.FieldAsString(sltb.FieldIndex['serPersonName']);
        Form1.StringGrid1_SP.Cells[3, m] := sltb.FieldAsString(sltb.FieldIndex['serPersonSex']);
        m := m + 1;
        sltb.Next;
      end;    finally
      sltb.Free;
    end;
  finally
    sldb.Free;
  end;
end;
其中
  Form1.StringGrid1_SP.Cells[2, m] := sltb.FieldAsString(sltb.FieldIndex['serPersonName']);
        Form1.StringGrid1_SP.Cells[3, m] := sltb.FieldAsString(sltb.FieldIndex['serPersonSex']);
写入时的乱码已经解决
但是显示到窗口上的这个乱码,查了好久无法解决