MariaDB社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5497|回复: 6
打印 上一主题 下一主题

[VF相关] ?VF+MYSQL的问题,大侠解决!!!

[复制链接]
跳转到指定楼层
1#
发表于 2009-10-14 21:12:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用VF编辑的程序,用MYSQL做服务器,连接没问题,
MYSQL字符集除了服务器为UTF8 其余都为GB2312.
MH_DB数据库中TABLE1表中有  ‘图号’  列记录有‘12345678901234567890’;‘123456789012345’;‘1234567890123456’三个记录
    当SQLEXEC(CON,"SELECT * FROM TABLE1 WHERE 图号=‘12345678901234567890’")   &&CON为连接语句句柄,此查询可以执行,没问题(TABLE1表中已有记录‘12345678901234567890’),可以查询到。但当使用?CTH变量代替时出现以下问题
  CTH='12345678901234567890'
SQLEXEC(CON,"SELECT * FROM TABLE WHERE 图号= ?CTH")   && 查询为空,当CTH为15个字节时可以查询到,即
                                                                                            &&只有当  CTH=‘123456789012345’可以查询到
此为问题一;
当执行SQLExec(con,"insert into kmh_k select * from kmh where 零件图号=?Cth")时有时可以执行,有时出现UTF8 与GB2312冲突,但这一句的前一句刚执行了一句SQLExec(con,“SET NAMES GB2312”),可是在程序调试状态下当出现冲突提示时,在命令行执行一下SQLExec(con,“SET NAMES GB2312”),再执行SQLExec(con,"insert into kmh_k select * from kmh where 零件图号=?Cth")就好了,
此问题二;
MYSQL数据有中文时如“一二三”,我使用VARCHAR,字段必须为“一二三   ”才能在VF中正确读出,即一个中文字符,后面必须加一个空格,如果后面有2个空格,在VF中显示“一二?”一个空格VF显示“一?”
此问题三。
我想是字符集的问题吧,一直未解决,请求那位大侠解决一下。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
2#
发表于 2009-10-14 23:06:45 | 只看该作者
问题一: ?只代表一个匹配, 还有应该用like代替=
问题二:字段字符集和数据库、客户端、连接的字符集在操作时应该保持一致先,而set name就起这个作用,你可以在建立连接时就执行一下这句话。
问题三:字段字符集设置的问题

其他搜索一下论坛帖子...
3#
 楼主| 发表于 2009-11-15 21:23:13 | 只看该作者
谢谢了,我试试看,
问题二:我建立连接和查询时都执行这句话,可有时就是冲突,
问题三:我查看了MYSQL的字符集设置,除了MYSQL服务器级的是UTF8,其余都是GB2312,
        我明天再试一下,将出问题的截图发上来。
再次表示感谢
4#
 楼主| 发表于 2009-11-15 21:25:57 | 只看该作者
还有“?号代表一个匹配”是什么意思啊,应该用什么字符啊
5#
 楼主| 发表于 2009-11-15 21:50:10 | 只看该作者
非常感谢Kider大哥,将我的问题置顶。在这里提一点小建议。
来这的大都是新手(来这的新手应该是挺幸运的,有这么多热心的大哥),有好多问题是相同的,你们可以总结一下让后贴一些源程序,简单的。那一目了然。如
VF+MYSQL,VC+MYSQL,VB+MYSQL,PHP+MYSQL等,从安装设置到源码,可以让我们照着做啊。
我明天把我的程序简化一下,传上去,看看能做成一个VF+MYSQL得例子吧。
6#
发表于 2009-11-17 11:42:15 | 只看该作者
谢谢你的良好建议,设置了此栏目的具体分类,在发表新帖时使用,方便查找...
7#
 楼主| 发表于 2009-11-17 21:00:27 | 只看该作者
Kider大哥,问题一;已解决是VF里——工具---选项---数据里排序序列的设置问题,设为‘machine’问题解决。原来默认的是‘pinyin’选项。
问题二,不是大问题,我可以在程序里解决。
现在就剩下问题三。
我今天装了三次MYSQL ,
字符集安装时分别设置为UTF8,gbk,gb2312,
问题都存在,在VF远程视图存在中文显示不全问题,
在三种状态下都在命令窗口执行
SQLEXEC(CON,"SET NAMES GBK")&&&CON为连接句柄,已连上;
SQLEXEC(CON,"select * from table")&&&显示中文为乱码
SQLEXEC(CON,"SET NAMES GB2312")&&&CON为连接句柄,已连上;
SQLEXEC(CON,"select * from table")&&&显示中文为乱码
SQLEXEC(CON,"SET NAMES utf8")&&&CON为连接句柄,已连上;
SQLEXEC(CON,"select * from table")&&&显示中文取不全
好像是MYSQL里UFT8将中文做为一个字节,在服务器上取数据时少取了字段中文个数的字节,导致后面的数据显示不出来,将MYSQL里的数据设为VARCHAR,中文数据后面加上足够空字节,读取数据时就没问题了,但这好像是权宜之计。为什么微软的SQL不存在这问题呢。
好像MYSQL字符集问题是提问最多的吧。
另外VF数据为GBK
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|MariaDB社区 ( 京ICP备07012489号    |
业务联系: QQ:48474881; 邮箱: 48474881@qq.com; 电话:13911732319
声明:本站部分文章是网友转载,若未经作者同意或署名有误,请联系网站管理员。

GMT+8, 2024-11-1 08:17 , Processed in 0.074257 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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