User-Profile-Image
hankin
  • 5
  • 首页
  • 技术-Study
    • Java
    • Php
    • WordPress
  • Enjoy-Life
  • 随拍-Photo
  • 分享-Share
  • 关于我
  • 分类
    • 随拍-Photo
    • Enjoy-Life
    • 技术-Study
    • 所有
    • 分享-Share
    • Java
    • Wordpress
    • Php
    • SQL Server
    • Linux
  • 页面
    • 首页
    • 学习日志
    • 生活日记
    • 随手拍拍
    • 关于我
  • 友链
    • 百度一下
    • 我爱水煮鱼
    • Jay's Notes
    • 淮城一只猫
    • 雨林寒舍
    • 不败君
    • 广告联盟
    • hankin
    • Tengine
    • 寥寥尘事 尘事固已矣,秉意终不迁。
    • 友人C
    • Typecho
    • jokeWorld
    • 蓝洛水深
    • 身边的大佬
    • Duilib
    • Runoob
    • Hank
Help?

Please contact us on our email for need any support

Support
    首页   ›   技术-Study   ›   SQL Server   ›   正文
SQL Server

Sqlite 中文乱码 ODBC连接 解决办法 Powerbuilder – Connect to SQLite ODBC

2018-08-27 17:32:54
1062  0 0

PowerBuilder 真是一门古老的语言,所以有些技术,真的很难寻找,因为用的人实在是太少。

目前来说,笔者暂时还没找到PB直连Sqlite的办法,后来通过ODBC连接Sqlite ,但总是出现中文乱码,经过笔者花了好几天没日没夜的寻找了N篇国内外文章,终于找到一个合适的ODBC工具,当然中文也不会出现乱码。

出现乱码的原因:

1、sqlite编码是uft8,

2、PB是ANSI,如果从Sqlite数据库取出一个字段的值直接显示会出现乱码

简单处理方式:我用这种方式格式化后显示string(blob(ls_username,EncodingANSI!),EncodingUTF8!),就不显示乱码了。

最终解决办法:下载一个Sqlite的ODBC驱动

string ls_dbparm, ls_dbfile, ls_exepath, ls_file[]  
  
ls_dbfile = c:\temp\sqlite.db3'  
  
IF Fileexists(ls_dbfile) THEN  
    // do nothing  
ELSE  
    IF GetFileOpenName('Select Data File',ls_dbfile, ls_file,'db3','SQLite files (*.db3),*.db3') < 1 THEN  
        Messagebox('No Data File Chosen','Application will close')  
        HALT CLOSE  
    END IF  
END IF  
// SQLite connection  
ls_dbparm = "ConnectString='"  
// Driver installed with SQLite2009 Pro Enterprise Manager  
ls_dbparm = ls_dbparm + "DRIVER=SQLite2010 Pro ODBC Driver;"   
ls_dbparm = ls_dbparm + "Database=" + ls_dbfile + "'"   
ls_dbparm = ls_dbparm + "UID=" + "admin" + ";PWD="  
ls_dbparm = ls_dbparm +  "'"   
sqlca.DbParm=ls_dbparm   
  
sqlca.DBMS = "ODBC"  
  
CONNECT USING SQLCA;  
IF (sqlca.sqlcode) <> 0 THEN   
    MessageBox("Database Log On Error","Failed to Connect to Database" +string(sqlca.sqlcode)+" "+sqlca.DBparm  + sqlca.sqlerrtext)  
    HALT CLOSE  
END IF

通过上面连接代码,就完美解决了中文乱码的问题。

Sqlite的ODBC驱动下载地址:

SQLite2009 Pro Enterprise Manager (FREE)

当时原文放出来的ODBC连接驱动还下载不了,后来通过Google搜索到了此ODBC驱动可下载网络 https://sqlite2009-pro.software.informer.com/

 

原文:https://anvil-of-time.com/wordpress/powerbuilder/powerbuilder-connect-to-sqlite-version-3-database-odbc/

评论 (0)

点击这里取消回复。

欢迎您 游客  

近期文章
  • Docsify 3分钟搭建博客
  • electron -v 全局安装,报错到晕厥
  • Electron-vue初始化项目时候报错:Command vue init requires a global addon to be installed.
  • 电脑重启后Visual Studio Code的快捷方式不存在?
  • 搜狗浏览器提示:您要访问的网站包含大量违法或违规内容
标签
0x800706be 18456 Apache bbr CDN CentOS command not found Dubbo GCE GCP google Google Cloud Platform IDEA K2 Memcached microsoft sql native client Mysql nano ODBC PB PHP phpstudy Powerbuilder Python shiro SQL2008 SQL Server Sqlite sqlite_master Sql server 2008 R2 sqlstate=08001 SSL ssr SyncPragma table thymeleaf Wordpress zookeeper 中石化,加油卡,百度地图 字段 客户端不支持加密 幽默 数据库 正则表达式 登录失败 腾讯CDN
Copyright © 2023 网站备案号: 苏ICP备18047535号
smarty_hankin 主题. Designed by hankin
主页
页面
  • 首页
  • 学习日志
  • 生活日记
  • 随手拍拍
  • 关于我
博主
_陈默默 管理员
人生就是:定性,知事,选梦,遇人,择城,终老。
125 文章 1 评论 67783 浏览
测试
测试