| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1662 人关注过本帖
标题:关于VFP与SQL连接
只看楼主 加入收藏
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:14 
关于VFP与SQL连接
小弟新手,为了能将VFP与数据库连接,我看了很多网上相关的文章,但使终不能学到更深的哪怕是一点.
从最初的跟本不知道怎么将VFP与SQL连接到以下这段语句已经是我的最大进步,但也就是单机才能应用而已,
到了局域网中就不知道怎么一回事了.有好多疑问,我想也是太多太多的新入门朋友的疑问.
比如:
1、SQL Server服务器名他在远程服务器名称是什么?(网上好多都说直接IP地址就行,但我怎么用都不行)
2、为什么以下语句我在同一台电脑连接SQL就行,换了局域网其他的都不行了。
3、网上关于网络防火、允许远程连接到此数据库的==都已经改过了
最后还是出现
图片附件: 游客没有浏览图片的权限,请 登录注册

小弟真的不知何处是路呀!请各位能够帮我解除疑问,非常感谢,

Public gnConnhandle  &&将该SQL连接句柄设为全局变量,其他过程中仍可继续调用
lnWindowHandle=0  
lcODBCDriver='SQL Server' &&Driver类型
lcODBCServer='GANHUA\SQLEXPRESS' &&SQL Server服务器名GANHUA\SQLEXPRESS
lcODBCDatabase='公司数据库' &&要连接的数据库名称
cna='mysql' &&数据库用户名
cpa='12345' &&数据库密码
gnConnhandle=SQLSTRINGCONNECT('driver='+lcODBCDriver+';Server='+lcODBCServer+';uid=&cna;pwd=&cpa;database='+lcODBCDatabase)
SQLSETPROP(0,'DispLogin',3)
SQLSETPROP(0,"IdleTimeout",0)
IF gnConnhandle<=0 &&判断SQL连接是否成功
=MESSAGEBOX("连接数据库失败,请与系统管理员联系!",0+48,"提示")  
RETURN
ELSE   
WAIT WIND '成功连接数据库.....' TIMEOUT 4
ENDIF  
SQLEXEC(gnConnhandle,'SELECT * FROM 送货明细表','送货记录')&&BROWSE&&SQLEXEC(gnConnhandle,'execute SP_SEARCHALL','送货记录')
browse
搜索更多相关主题的帖子: 数据库连接 台电脑 IP地址 服务器 局域网 
2013-07-14 00:34
wywj513024
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2010-8-29
收藏
得分:5 
我也是这样,就是连接这一步不能迈出去
2013-07-14 11:24
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
如何呀!难道就这样永远不能打开SQL Server的大门,难道还要从新再学另一种语言吗?
叫我再学C+或VB之类的,我可没那个心思的喔!自学之路的杯具......
2013-07-14 15:21
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:5 
vfp 连接 sql server 功能特别强,只要几个参数正确,不用费劲很容易连接上。有几种连接都可以,请试试。
1、非数据库式连接:
   nCon=SQLSTRINGCONNECT("driver=SQL Server;Server=服务器IP;Uid=用户ID;pwd=数据库密码;database=数据库名")
   ndd=SQLEXEC(ncon,'select * from dbo.表名','自定义游标名')
   browse
2、数据库式连接:
   close all
   create database sjk
   CREATE CONNECTION 'lik' CONNSTRING "DRIVER=SQL Server;SERVER=服务器IP;UID=用户ID;PWD=数据库密码;APP=Microsoft Visual FoxPro;DATABASE=数据库名"
   nhd=sqlconnect('lik')
   ndd=SQLEXEC(nhd,'select * from dbo.表名','自定义游标名')
   browse
   
3、ADO 连接:
      
  LOCAL oConn as ADODB.Connection
  LOCAL oRS as ADODB.Recordset
  LOCAL oException AS Exception
  LOCAL oCA as CursorAdapter
  LOCAL cConnString
  cConnString = [Provider=SQLOLEDB.1;Data Source=服务器IP;Initial Catalog=数据库名;User ID=用户ID;Password=数据库密码]
TRY
    oConn  = createobject('ADODB.Connection')
    oConn.Open(cConnString)
    oRS = CREATEOBJECT("ADODB.Recordset")
    oRS.ActiveConnection = oConn
    oCA=CREATEOBJECT("CursorAdapter")
    oCA.DataSourceType = "ADO"
    oCA.DataSource = oRS
    oCA.MapBinary = .T.
    oCA.MapVarchar = .T.
    oCA.SelectCmd = "SELECT * FROM dbo.表名"
   
    IF !oCA.CursorFill()
        LOCAL laError
        DIMENSION laError[1]
        AERROR(laError)
        MESSAGEBOX(laError[2])
    else
        BROWSE NORMAL
    ENDIF

CATCH TO oException
    MESSAGEBOX("出错")
ENDTRY
 
 ** 几种连接方式各有特点,可根据需要而定。比如第1种简单,但是每次使用前要建立一次。第2种,只建立1次,用前只要打开数据库,调用连接即可。 第3种,功能强大,有多种用途,但建立繁琐一点。
    服务器IP,可以换成服务器名。但最好用IP。用户ID,一般用 sa,但是广域网上不安全,最好改掉。
 (仅供参考)
2013-07-14 23:42
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
VCONN=SQLSTRINGCONNECT('driver=SQL Server;Server=192.168.1.31;uid=mysql;pwd=12345;database=AFDWXF')
请问我这语句的IP地址的位置有错吗?为什么我用服务器名称就行,换了IP地址就不行了呢?
2013-07-16 19:46
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
写的没错。关键是这个IP是不是服务器的IP,如果是,从你的机子 ping 这个 IP,如果能 ping 通,再有问题就奇怪了。
2013-07-16 22:11
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
以下是引用afdwxf在2013-7-14 00:34:10的发言:

小弟新手,为了能将VFP与数据库连接,我看了很多网上相关的文章,但使终不能学到更深的哪怕是一点.
从最初的跟本不知道怎么将VFP与SQL连接到以下这段语句已经是我的最大进步,但也就是单机才能应用而已,
到了局域网中就不知道怎么一回事了.有好多疑问,我想也是太多太多的新入门朋友的疑问.
比如:
1、SQL Server服务器名他在远程服务器名称是什么?(网上好多都说直接IP地址就行,但我怎么用都不行)
2、为什么以下语句我在同一台电脑连接SQL就行,换了局域网其他的都不行了。
3、网上关于网络防火、允许远程连接到此数据库的==都已经改过了
最后还是出现

小弟真的不知何处是路呀!请各位能够帮我解除疑问,非常感谢,

Public gnConnhandle  &&将该SQL连接句柄设为全局变量,其他过程中仍可继续调用
lnWindowHandle=0  
lcODBCDriver='SQL Server' &&Driver类型
lcODBCServer='GANHUA\SQLEXPRESS' &&SQL Server服务器名GANHUA\SQLEXPRESS
lcODBCDatabase='公司数据库' &&要连接的数据库名称
cna='mysql' &&数据库用户名
cpa='12345' &&数据库密码
gnConnhandle=SQLSTRINGCONNECT('driver='+lcODBCDriver+';Server='+lcODBCServer+';uid=&cna;pwd=&cpa;database='+lcODBCDatabase)
SQLSETPROP(0,'DispLogin',3)
SQLSETPROP(0,"IdleTimeout",0)
IF gnConnhandle<=0 &&判断SQL连接是否成功
=MESSAGEBOX("连接数据库失败,请与系统管理员联系!",0+48,"提示")  
RETURN
ELSE   
WAIT WIND '成功连接数据库.....' TIMEOUT 4
ENDIF  
SQLEXEC(gnConnhandle,'SELECT * FROM 送货明细表','送货记录')&&BROWSE&&SQLEXEC(gnConnhandle,'execute SP_SEARCHALL','送货记录')
browse
我终于知道连接不上的原因了,原来只要一项项的检查就会连上的.我是SQL 配置管理器/服务/登录/服务状态没有启用
 如下图:
图片附件: 游客没有浏览图片的权限,请 登录注册

2013-07-20 14:17
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
以下是引用qingfameng在2013-7-16 22:11:12的发言:

写的没错。关键是这个IP是不是服务器的IP,如果是,从你的机子 ping 这个 IP,如果能 ping 通,再有问题就奇怪了。
服务器就是本机,PING是怎么用的?
IP地址不就是如下图这个吗?
还有别的方法看到不同的IP吗?
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-07-20 14:21
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
回复 8楼 afdwxf
开始--运行--cmd
ping 192.168.1.1
2013-07-20 15:44
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
各位大哥,这是什么意思?
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-07-21 18:15
快速回复:关于VFP与SQL连接
数据加载中...
 
   



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

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