方法一,VCL控件:
后面注释为要设置的属性
Sqlite3connection1: Tsqlite3connection;//database:='data.db'
Sqltransaction1: Tsqltransaction;//.database= Sqlite3connection1
Sqlquery1: Tsqlquery;.database= Sqlite3connection1
//sql:='select * from table'
Datasource1: Tdatasource;//dateset:= Sqlquery1
我的数据库编码为ANSI,显示为乱码,这个方式感觉不方便,若为UTF8这个方法还是很方便的
在dbgrid显示
Sqlite3connection1.Open;
Datasource1.DataSet:=SQLQuery1;//若有其它方式显示数据要这句
Datasource1.DataSet.open;
dbgrid1.DataSource:=datasource1;
方法二,内存表显示从mormot里取数据
procedure TForm1.Button7click(Sender: TObject);
var
cds: TBufDataset;
F: TFieldDef;
F1: db.Tfield;
Database: TSQLDatabase;
gPrope: TSQLDBSQLite3ConnectionProperties;
rows: ISQLDBRows;
I: integer;
s1: RawUTF8;
begin
cds := TBufDataset.Create(nil);
cds.Close;
cds.FieldDefs.Clear;
cds.FieldDefs.Add('ID', ftinteger);
cds.FieldDefs.Add('QuanGuoXueJiHao', ftstring, 20);//20为宽度,若为零不显示
cds.FieldDefs.Add('ShiLingErTongXingMing', ftstring, 12);//12为宽度,若为零不显示
Database := TSQLDatabase.Create('data.db'); //这里面可以设置缓存大小
gPrope := TSQLDBSQLite3ConnectionProperties.Create(Database);
rows := gPrope.ExecuteInlined('select * from Baomingxinxi', True);
cds.CreateDataSet;
i := 1;
while rows.Step() do
begin
cds.Append;
cds.FieldByName('ID').AsInteger := i;
Inc(i);
s1 := CP936ToUTF8(rows.ColumnUTF8('QuanGuoXueJiHao'));
cds.FieldByName('QuanGuoXueJiHao').AsUTF8String := s1;
TWideStringField(cds.FieldByName('ShiLingErTongXingMing')).Value :=
CP936ToUTF8(rows.ColumnUTF8('ShiLingErTongXingMing'));
cds.Post;
end;
cds.Open;
dbgrid1.DataSource.DataSet:=cds;