QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2082|回复: 12

无解,差劲的 sqlite 管理器 sqlitedbbrower

[复制链接]
发表于 2011-2-6 13:42:13 | 显示全部楼层 |阅读模式
找过一些 sqlite 管理器,似乎没有一个是好用的,原因就是编码问题,因为我想解决的就是无论是 Win (gb)还是 Linux (utf8) 都能正常工作,可惜真的没有,由于 sqlitedbbrower 是用 qt 写的,所以在这方面还好,唯一出现 Bug 的地方是 导入电子表格上面,当我试图解决唯一出现的乱码现象时,发现这个 sqlitedbbrower 无法理解的代码风格。。。
代码是 qt4 环境能编译的却沿用 qt3 的组件方法,QString 能处理的文本却突然用 char * 处理了半天,搞得我看得晕头转向,于是重新动手把作者的C++中的C代码用 QString 处理,却发现显示正常了,导进数据库又不正常了,再查,居然发现在 SQL 语句中用了 QStringList 时又发扬 C代码风格,于是中文又被半字处理。。。
作者可敬。。。C+Qt3+Qt4 风格我见识了。。。还不如我自己写一个呢。。。
发表于 2011-2-6 14:59:19 | 显示全部楼层
自由软件程序员似乎都不理解>7bit的语言支持存在的意义
回复

使用道具 举报

发表于 2011-2-6 15:48:30 | 显示全部楼层
开源软件就是这样的好处,觉得不合适可以改,再不合适可以自己写。
回复

使用道具 举报

发表于 2011-2-6 20:55:37 | 显示全部楼层
呵呵,我都是用firefox的插件
回复

使用道具 举报

 楼主| 发表于 2011-2-7 08:14:28 | 显示全部楼层
原帖由 sejishikong 于 2011-2-6 15:48 发表
开源软件就是这样的好处,觉得不合适可以改,再不合适可以自己写。

我已经尽力了,本来这款软件是不错的,我改了很多地方,但是这款软件 char * 和 QString 转来转去,好好的 QString 不使用。。。我汗,最后根本不知道是哪里出了问题,所有的字符都变成 data.utf8(),这样 zh_CN.utf8 也被转成了乱码。只是 listview 那有的显示正常有的显示乱码,实在是无法再改了-- 除非我有这位大侠非一般的 char * 的功底。。。
sqlite 简单的可视化工具应该不是很难,为何就没一款合适国人用的开源工具。。。
回复

使用道具 举报

发表于 2011-2-7 10:24:21 | 显示全部楼层
国人都用 oracle 和 mssql 。
估计开发人员对于 sqlite 都不知道是干啥用的。
回复

使用道具 举报

发表于 2011-2-7 10:58:24 | 显示全部楼层
那个firefox的插件楼主试了么?我以前用过,挺好用的啊
回复

使用道具 举报

 楼主| 发表于 2011-2-7 23:47:02 | 显示全部楼层
原帖由 jiangtao9999 于 2011-2-6 14:59 发表
自由软件程序员似乎都不理解>7bit的语言支持存在的意义

自己写还是很麻烦的。。。还是改吧。。。
其实自己对>7bit的语言支持也不甚了解哦。。。在实际编程中如果不使用tr(),那么就很可能非用到
QString::fromUtf8
QString::fromLocal8Bit
sqlitedbbrower 终于修正完乱码了,之前发的牢骚实际上是自己的对>7bit的语言支持不了解
因为Qt4在 UTF8 环境使用中文也必需要指定编码,即便是内容已经存放在 QString 当中。。。
Qt4 环境在编译时某些情况会使得专门调用更换编码的函数失效也是原因之一,解决方法就是不用那个函数改由自己实现。
至于为什么会是这样的,我也说不清楚,反正一个 QString 从另一个 QString 中取得中文内容就必需重新声明编码,这也就是这款软件为什么总有乱码的原因。所以还是 tr() 方便,只要声明一次编码即可。
下一步解决掉列表显示中文左数字右的 Bug 就算修正完工了。
回复

使用道具 举报

 楼主| 发表于 2011-2-8 01:19:06 | 显示全部楼层
下一步解决掉列表显示中文左数字右的 Bug 就算修正完工了。

q3table 没有位置函数,改成 qt4 的 QTableWidget 很多东西都要改,懒了。。。,这个本来可以用 q3listview ,作者为了练习用了这个。。等以后有精力重新用 Qt4 的组件写吧。本来想给它国际化一下菜单,我看也免了。。

[ 本帖最后由 haulm 于 2011-2-8 01:22 编辑 ]
回复

使用道具 举报

发表于 2011-2-8 13:10:03 | 显示全部楼层
找个类似phpmyadmin的玩意吧……
但愿有……
回复

使用道具 举报

 楼主| 发表于 2011-2-8 14:29:24 | 显示全部楼层
原帖由 jiangtao9999 于 2011-2-8 13:10 发表
找个类似phpmyadmin的玩意吧……
但愿有……

兄台想错了,Web 服务器并不流行,sqlite 也不适合用于 Web,我觉得它特适用于办公。
单位使用的系统可以把数据导出为 excel,我估计也是 CSV 格式的,这种格式没有什么困难地可以导进和导出数据库
单位的系统对数据的处理达不到 SQL 语句那么方便,这也就是我比别人优越的一点:
我可以把数据导进 sqlite 然后进行重新编排处理再导出打印,别人可能看傻了或在 Excel 里面排版半天。
现在明白为什么我去捣腾修正了吧,本来是可以纯指令操作的,但是 Win 的 cmd 不支持直接输入中文,所以才想到找一个工具,后面发现只能自己去修正或写一个。
回复

使用道具 举报

 楼主| 发表于 2011-2-8 16:17:33 | 显示全部楼层
SQLite Database Browser 2.0b1 修改过来的,解决乱码问题,数据库肯定是 UTF8 码,以便 Linux 上互通使用。
不过这里存在一个问题,如果是 Win 上使用,导出的 cvs 文件是 ANSI 格式,Linux 上导出的是 UTF8 码的。
导入是我重写的,所以导入文件必需是 UTF8 码,而导出的和中文版 MSoffice 默认生成的 CVS 文件都不是 UTF8 格式,所以必需用记事本,在底下下拉转存为 UTF8 码再导入。我不知道该如何让程序判断文件的编码,否则我可以在代码中进行设置。
。。。
最新的测试,依赖QtGuid4.dll,这个文件有147M,依赖库达到200M,难不成还要静态编译?
回复

使用道具 举报

发表于 2011-2-8 19:25:48 | 显示全部楼层
我觉得你还是先检查一下这个库的编译参数吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-25 20:06 , Processed in 0.069060 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表