水晶报表打印中文乱码问题

zxygegao 2008-09-23 12:00:00
你好,我的程序组合是mysql+水晶报表+vc,在打印的时候从数据库里读出内容,但是汉字是问号,为什么,怎么解决啊?
我的mysql数据库的编码是gb2312。


还有我差了一些资料,水晶报表与vc的连接方法大部分是如下的,
_bstr_t DataPath="C:\\Program Files\\MySQL\\MySQL Server 5.0\\data\\test";
_variant_t strSource=DataPath;

m_pReport->Database->Tables->Item [1]->SetLogOnInfo("(localhost)",strSource,"root","zxy");

但是有个问题,在debug模式下会出现让选择数据库的对话框,怎么控制可以不出现啊?
在release模式下,出现的对话框都不一样,都没有选择mysql数据库的机会
...全文
500 23 打赏 收藏 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2008-09-25
  • 打赏
  • 举报
回复
要想让水晶报表记住数据库密码,最好是用ODBC建立连接,做一个DSN就能解决。
zxygegao 2008-09-24
  • 打赏
  • 举报
回复
如何设置默认数据库,说的具体一些,呵呵
zxygegao 2008-09-24
  • 打赏
  • 举报
回复
我的意思是怎么在水晶报表里设置odbc数据源
WWWWA 2008-09-24
  • 打赏
  • 举报
回复
在ODBC5.12中可以设置默认数据库
zxygegao 2008-09-24
  • 打赏
  • 举报
回复
我在看你给的那片文章,我想问的是你的那片文章中标准报表创建向导是哪里出来的?
我的水晶报表是v10版的,和这个有关系没?
程序运行时都不让我选择odbc数据源,是不应该修改一下安装信息
WWWWA 2008-09-24
  • 打赏
  • 举报
回复
上述是VFP的代码,自行修改为你的语言
WWWWA 2008-09-24
  • 打赏
  • 举报
回复
示例:

N=SQLSTRINGCONNECT('Driver={MySQL ODBC 5.1 Driver};Server=localhost;Port=3306;Database=zz;USER=root;Pwd=123;')
zxygegao 2008-09-24
  • 打赏
  • 举报
回复
但是怎样能不出选择数据库的对话框呢?
zxygegao 2008-09-24
  • 打赏
  • 举报
回复
谢谢楼上的了,真的是因为odbc版本的问题,谢谢,非常非常感谢
阿泰 2008-09-24
  • 打赏
  • 举报
回复
我对VC基本不懂,呵呵,不过单纯从水晶报表角度来说,是可以的。
你可以参考看下
http://www.cnblogs.com/babyt/archive/2008/09/24/1297803.html
好像用5.1驱动后,直接能支持gb2312.
WWWWA 2008-09-24
  • 打赏
  • 举报
回复
MYSQL5的话,有ODBC5.12下载
WWWWA 2008-09-24
  • 打赏
  • 举报
回复
关键是数据库、字段的字符集设置,检查一下,要数据库、客户端的字符集设置一致才行
zxygegao 2008-09-24
  • 打赏
  • 举报
回复
我的mysql是5.0的,那我用gb2312可以吗?
阿泰 2008-09-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 babyt 的回复:]
不知道你是如何连接的,但是用MySQL ODBC 3.5.1这个驱动是不行的
用5.1则可以
http://dev.mysql.com/downloads/connector/odbc/5.1.html

连接字符串为:
Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;
[/Quote]

mysql服务器、数据库相关参数全部设置为utf-8
阿泰 2008-09-24
  • 打赏
  • 举报
回复
不知道你是如何连接的,但是用MySQL ODBC 3.5.1这个驱动是不行的
用5.1则可以
http://dev.mysql.com/downloads/connector/odbc/5.1.html

连接字符串为:
Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;
wwwwb 2008-09-24
  • 打赏
  • 举报
回复
用SQLYOG查询MYSQL表中的中文字段,OR 在MYSQL的命令提示符下查询中文字段
wwwwb 2008-09-24
  • 打赏
  • 举报
回复
你在MYSQL中查询一下字段,看看是否有乱码
zxygegao 2008-09-24
  • 打赏
  • 举报
回复
麻烦大家继续关注一下,项目的最后一个问题了,老板在催,在以上各位的帮助下解决了乱码的问题,但是这个输密码的对话框怎么可以去掉呢,程序里该如何设置呢,其实在设置odbc新连接的时候我已经指定了连接串'Driver={MySQL ODBC 5.1 Driver};Server=localhost;Port=3306;Database=zz;USER=root;Pwd=123。但是为什么还要我输入密码啊?而且不输入的话直接也是可以打印的,怎么把这个多余的对话框去掉呢
zxygegao 2008-09-24
  • 打赏
  • 举报
回复
现在的问题是不用选择数据库了,但是得输密码,其实在设置数据源的时候已经输过密码了,但是还是会出现对话框,不输入直接”确认“也可以正常打印,但是这个框怎样可以不出现呢
阿泰 2008-09-24
  • 打赏
  • 举报
回复
呵呵,水晶报表不都是这样嘛。。
新建报表-出现选择数据的框-点开创建新连接,双击ODBC(RDO)后面就出来了。

程序运行时选择odbc数据源的问题,有不少解决方法,但似乎都没有彻底解决,比较奇怪
建议你做个dsn看看,把安全信息放到文件里,这样应该能绕过去吧,不过我没试验过 :)
加载更多回复(3)

6,107

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧