Sqlite在UniDac转换FireDac注意事项
现手中一项目,尝试从第三方UniDac控件转换为CXE5自带的FireDac控件,在转换过程中有一下几点注意:
(1)因Sqlite是UTF8格式,在UniDac中默认支持,但是FireDac需要修改参数配置:StringFormat=Unicode
(2)动态创建Connection时,与UniDac也不同,不支持
FConn.ProviderName := 'SQLite';
FConn.LoginPrompt := False;
FConn.Database := FPath;
需修改为:
FConn.Params.Append('Database='+FPath);
FConn.Params.Append('DriverID=SQLite');
FConn.Params.Append('StringFormat=Unicode');
(3)Query或Table控件也需要修改:
Query.SpecificOptions.Values['FetchALl']:=BoolToStr(True,True); 修改为Query.FetchOptions.Mode:=fmall;Query.FetchOptions.RecordCountMode:=cmTotal;
Query.UniDirectional := True;修改为 Query.FetchOptions.Unidirectional:=true;
(4)数据表字段需要注意:
在FireDac中针对Delphi中的float不能在Sqlite设置为single,dec类型,否则读取值为0.
浙公网安备 33010602011771号