原来一直做VCL开发,主要也是针对Windows方面的,最近研究安卓开发,使用FireMonkey就发现原来的很多思路都不灵了,下面讲得就是我碰到的问题,其实挺简单,只是思路没改过来而已
本来是想自动创建一个SQLite的数据库,于是我按照windows的方式写了如下代码:
var
SQL:string;
begin
con1.Params.DriverID:='SQLite';
con1.Params.Database:='CWBJData.db';
con1.LoginPrompt:=False;
con1.Connected:=true;
SQL:='CREATE TABLE LoginV(UID integer PRIMARY KEY, UserN string(30), PWD string(30), LoginV integer)';
con1.ExecSQL(SQL);
结果就出现了错误,提示数据库无法打开,但在WINDWOS下面是正常的
在网上问了以后才知道安卓这样写不行,需要指定路径,于是代码就变成了下面这样就可以了
var
SQL,PathStr:string;
begin
PathStr:=TPath.Combine(TPath.GetDocumentsPath,'CWBJData.db');
con1.Params.DriverID:='SQLite';
con1.Params.Database:=PathStr;
con1.LoginPrompt:=False;
con1.Connected:=true;
SQL:='CREATE TABLE LoginV(UID integer PRIMARY KEY, UserN string(30), PWD string(30), LoginV integer)';
con1.ExecSQL(SQL);
但还是有两个问题需要注意:
1.上面这段代码使用了TPath,那就必须要引用System.IOUtils单元
2.System.IOUtils的引用顺序必须要放在FMX.Objects单元后面(此问题我有单独发表一篇文章说明)
如果不做这两项操作,代码会报错无法编译