注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

宝贝小屋

生活 工作 学习

 
 
 

日志

 
 

vfp 中接mysql数据库的方法  

2010-07-16 11:27:19|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

总在想利用vfp连接mysql数据库,为以后的网络编程作一些准备。经过近一天的时间在网上找文章最后总算是有些眉目了。

(1)因为的电脑用的Php的组件,mysql已安装好,以为是没有问题了。经过的反复的试验发现还必须安装一个连接的驱动。

        在网上可以下载到的。我用的是mysql-connector-odbc-5.1.6-win32.msi

(2)在vfp中编写一些连接的命令。我编写了两一个按钮。

一个是连接mysql  如下:(其中tbz为数据库,20010101为数据库的密码。)

 

sqlhandle=sqlstringconnect    ("driver={mysql odbc 5.1 driver};server=192.168.0.66;port=3306;database=tbz;uid=myuser;pwd=20010101;charset=gbk")
*m.GnHandle = Sqlstringconnect("Driver={MySQL ODBC 5.1 Driver};Server=127.0.0.1;Port=3306;Database=trustqf;UID=root;PWD=root;charset=gb2312")
*SQLExec(m.GnHandle,"select * from test","ctest")


*messagebox(sqlhandle)
 if sqlhandle<0
          messagebox("mysql数据库连接失败!",16,"提示")
 return
 else
 messagebox("mysql数据库连接成功!",254,"提示")
SQLEXEC(sqlhandle,"select * from p8_ad","学生表")   
 brow
  endif
经过以上设置在本地没有问题。后来通网络测试发现连接失败。查找原因为

 

mysql: 1130 Host '192.168.1.3' is not allowed to connect to this MySQL server

如果你想连接你的mysql的时候发生这个错误:

 

ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server

解决方法:


1. 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;[/pre]

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

经过以上就可以访问mysql数据库了。

后来又试了一下vfp数据库的连接,大同小异的。

sqlhandle=sqlstringconnect("Driver={Microsoft Visual FoxPro Driver};  SourceType=DBC;   SourceDB=\\192.168.0.5\c$\a.dbc;  Exclusive=No;")
*sqlhandle=sqlstringconnect("Driver={Microsoft Visual FoxPro Driver};  SourceType=DBC;   SourceDB=c:\a.dbc;  Exclusive=No;")


if sqlhandle<0
          messagebox("mysql数据库连接失败!",16,"提示")
 return
 else
 messagebox("mysql数据库连接成功!",254,"提示")
SQLEXEC(sqlhandle,"select *  from e1","tt66t")   

 brow
 endif
(其中e1为a.dbc中的一个表,发现数据库的表不能用数字打头,可能出现错误)

出现10060错误是因为网络不通而造成的。

  评论这张
 
阅读(1966)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017