• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

DelphiXE4ForIOS之SQLite初试

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

关于SQLite的开发官方有给出一个简单的例子,该例子的地址是http://docwiki.embarcadero.com/RADStudio/XE4/en/IOS_Tutorial:_Using_SQLite_in_an_iOS_Application.

这个例子使用的dbExpress控件做数据库连接的。dbExpress这个说实在的不是很好用,本人也不太喜欢用这个。

于是乎本人改用了UniDac和FireDac重做了这个demo,其中FireDac下载地址是http://altd.embarcadero.com/download/radstudio/xe4/FireDAC_8.0.1.3279.exe ,UniDac可以在盒子里面找,这里就不提供了。

代码的话其实都是类似的,基本不用怎么去修改。换成这个两个控件遇到的问题是中文显示乱码的问题,要花费了不少时间,跟大家分享下经验,和交流下。还有就是现阶段的Sqlite文件都没有加密,加了密码这个两个数据控件是死活都连接不上。其中加密码FireDac其实有个办法能解决,这个控件自带加密的函数功能。但是,如果用它提供的函数加密的话,用的第三方管理工具是连接不上的,要连接上每次都要去掉密码的,很是麻烦,我用的第三方管理工具是SQLite Expert Professional 3和Navicat For Sqlite。建议建库还是用SQLite Expert Professional ,不然编码问题会莫名其妙的出来的。

按照官方那个demo创建好相应的数据库文件,建库的时候记住编码要选择UniCode,不然中文会显示成乱码的。就UniDac来说

    

UseUniCode选择选择True。还有里面涉及到字段操作的最后都用WideString类型的,不然还是会乱码。来个运行的图

对于FireDac来说设置StringFormat这个属性设置成UniCode,这个属性花了点时间去查找。然后就是字段的操作还是跟之前一样,要用widestring类型。

就里面添加按钮的代码是:

procedure TForm2.btnInsertClick(Sender: TObject);
var
  ShopItem: String;
begin
  try
    if InputQuery('Enter New ShopItem', 'ShopItem', ShopItem) and not (ShopItem.Trim = '') then
    begin
      ADQueryInsert.ParamByName('ShopItem').AsWideString := ShopItem;
      ADQueryInsert.ExecSQL();
      ADTable1.Refresh;
      LinkFillControlToField1.BindList.FillList;
    end;
  except
    on e: Exception do
    begin
      SHowMessage(e.Message);
    end;
  end;
end;

都用WideString类型问题就不是问题了。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
第二章 M文件程序设计(matlab)发布时间:2022-07-18
下一篇:
Delphi元件的handle的建立发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap