| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1152 人关注过本帖, 2 人收藏
标题:分享:win7系统下 使用vfp 连接 mysql 数据库
取消只看楼主 加入收藏
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
结帖率:96.72%
收藏(2)
已结贴  问题点数:20 回复次数:3 
分享:win7系统下 使用vfp 连接 mysql 数据库
网上搜索了有关mysql和vfp的教程,基本上不尽人意,难以实现vfp连接mysql数据库,没办法,只好自己研究摸索。。。

搞了两天,卸载了再安装,安装了再卸载,总算成功了。

现在把我经历分享给大家,希望有需要的狐友不要再和我一样走弯路了!

首先,去官网下载mysql,我的系统是win7,64位的,最初我下载了最新版的mysql 以及connector ODBC,也是64位的,和操作系统匹配,但是和vfp不匹配,捣鼓了很久,走了很多弯路,原来根本不行。
注意:由于vfp是32位的,所以mysql和connector ODBC必须是32位的,否则会报错,网上搜错误代码,给你什么答案都有。
我下载的是mysql 5.7版,32位最后的版本,以及最新的32位的connector ODBC 8.0。

其次,安装好之后,就是配置mysql服务器了。这里又碰到一个坑,控制面板里的ODBC管理器里没有安装好的connector ODBC 8.0 驱动可以选。又捣鼓了很久,网上也没看到有关这个的介绍,可把我急死了。
我把网上搜索到的安装方法几乎一一试过,没有一个是成功的,吐血!

最后我想到,控制面板里的ODBC管理器可能是64位的,问题就出在这个管理器上,它应该也是32位的才行!,于是去windows的系统文件夹里去找这个ODBC管理器。终于在c:\windows\syswow64 里找到32位的ODBC管理器 odbcad32.exe

在命令行里运行这个管理器,果然找到了安装好的odbc 驱动,于是赶紧配置了mysql,然后打开vfp,尝试连接,果然成功,开心。。。。。。

怕忘记怎么连接mysql数据库,又赶忙写了个连接类connector,却又不知道该添加什么其他功能(万能的网友可以建议一下)。。。
代码如下:
程序代码:
**************************************************
*-- 类:           connector (d:\documents\visual foxpro 项目\myclass.vcx)
*-- 父类:  custom
*-- 基类:    custom
*-- 时间戳:   02/19/24 11:39:14 PM
*
DEFINE CLASS connector AS custom


    Height = 17
    Width = 66
    *-- mysql数据源
    datasource = ""
    *-- mysql用户名
    user = ""
    *-- mysql密码
    password = ""
    *-- -1表示mysql连接失败;大于0成功
    handle = -1
    Name = "connector"


    *-- 连接mysql数据库,成功handle返回非零,失败返回-1
    PROCEDURE connect
        PARAMETERS cdatasourcename,cuser,cpassword
        IF PARAMETERS()=0
            cdatasourcename=this.dataSource
            cuser=this.user
            cpassword=this.password
        ELSE
            this.dataSource=cdatasourcename
            this.user=cuser
            this.password=cpassword
        ENDIF
        this.handle=SQLCONNECT(cdatasourcename,cuser,cpassword)

        RETURN this.handle

    ENDPROC


    *-- 断开mysql连接
    PROCEDURE disconnect
        PARAMETERS nhandle
        IF PARAMETERS()=0
            nhandle=this.handle 
        else
            this.handle=nhandle
        ENDIF
        IF nhandle>0
            SQLDISCONNECT(nhandle)
        ENDIF

    ENDPROC


    PROCEDURE Destroy
        this.disconnect()
    ENDPROC


ENDDEFINE
*
*-- EndDefine: connector
**************************************************


搜索更多相关主题的帖子: this vfp 连接 ODBC mysql 
2024-02-21 01:01
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:0 
回复 11楼 ykxby001
看看mysql的字符集是不是GB2312。

2024-02-23 22:53
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:0 
回复 14楼 ykxby001
试试strconv("回写文本",11)
2024-08-25 15:15
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:0 
回复 16楼 ykxby001
只要连接了,都可以查询和更新啊,要保持两端的字符集相同,否则就会乱码

CursorAdapter.DataSourceType [= cDataSourceType] &&"ODBC"
CursorAdapter.DataSource [= DataSource] &&连接mysql句柄
CursorAdapter.SelectCmd [ = cCommand ] &&查询语句

[此贴子已经被作者于2024-8-25 19:09编辑过]

2024-08-25 18:58
快速回复:分享:win7系统下 使用vfp 连接 mysql 数据库
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030434 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved