VFP连结SQL问题!

GEORGECHIN1 2013-10-04 11:01:37
因想把DBC后对口换成SQL,在用以下代码对SQL进行连接时,可以连上,但为什么用这个连接建立远程视图又返回说没有找到数据源名称并且未指定默认驱动程式?
DECLARE INTEGER SQLConfigDataSource IN odbccp32 INTEGER,INTEGER,STRING,STRING
Public gnConnhandle &&将该SQL连接句柄设为全局变量,其他过程中仍可继续调用
lnWindowHandle=0
lcODBCDriver='SQL Server' &&Driver类型
lcODBCName='MCS DATA' &&数据源名
lcODBCDesc="MCS DATA" &&数据源描述
lcODBCServer="192.168.1.110" &&SQL Server 服务器名
lcODBCDatabase="MCSDATA" &&要连接的数据库名称
gnConnhandle=SQLSTRINGCONNECT('driver='+lcODBCDriver+';Server='+lcODBCServer+';uid=;pwd=;database='+lcODBCDatabase)
SQLSETPROP(0,'DispLogin',1)
SQLSETPROP(0,"IdleTimeout",0)
IF gnConnhandle<=0 &&判断SQL连接是否成功
MESSAGEBOX("连接数据库失败,请与系统管理员联系!",0+48,"提示")
ELSE
MESSAGEBOX("连接数据库成功!",0+48,"提示")
ENDIF
OPEN DATA MADE
CREATE SQL VIEW V_ARRAY REMOTE CONNECTION GNCONNHANDLE SHARE AS USERID.*

刚学SQL的菜鸟,请指点,并教我如何在近端MADE里建立一个CONNECTION?
谢谢!
...全文
686 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
GEORGECHIN1 2013-11-16
  • 打赏
  • 举报
回复
引用 33 楼 u011120096 的回复:
[quote=引用 32 楼 apple_8180 的回复:] [quote=引用 31 楼 u011120096 的回复:] [quote=引用 30 楼 apple_8180 的回复:] SQL SERVER是WIN XP,必须打上 SQL Server 2000 Service Pack 4,否则客户端无法连接。
我用的是SQL SERVER 2008,需要打吗?[/quote]你用的是 XP,所以以为你用的是 SQL Server 2000。 SQL SERVER 2008 没有在 XP 下用过,SQL SERVER 2005及以下用过,没有问题。[/quote] 谢谢十豆三老师: 本来装的是双系统,因嫌SERVER 2003启动慢,就在XP上装了SQL SERVER 2008.为了让贴子能帮到其它有需要的人,我先不结贴,待验证后再结贴。[/quote] 改为SERVER 2003系统后,可以成功连接了!
GEORGECHIN1 2013-10-22
  • 打赏
  • 举报
回复
引用 30 楼 apple_8180 的回复:
SQL SERVER是WIN XP,必须打上 SQL Server 2000 Service Pack 4,否则客户端无法连接。
我用的是SQL SERVER 2008,需要打吗?
十豆三 2013-10-22
  • 打赏
  • 举报
回复
引用 31 楼 u011120096 的回复:
[quote=引用 30 楼 apple_8180 的回复:] SQL SERVER是WIN XP,必须打上 SQL Server 2000 Service Pack 4,否则客户端无法连接。
我用的是SQL SERVER 2008,需要打吗?[/quote]你用的是 XP,所以以为你用的是 SQL Server 2000。 SQL SERVER 2008 没有在 XP 下用过,SQL SERVER 2005及以下用过,没有问题。
GEORGECHIN1 2013-10-22
  • 打赏
  • 举报
回复
引用 32 楼 apple_8180 的回复:
[quote=引用 31 楼 u011120096 的回复:] [quote=引用 30 楼 apple_8180 的回复:] SQL SERVER是WIN XP,必须打上 SQL Server 2000 Service Pack 4,否则客户端无法连接。
我用的是SQL SERVER 2008,需要打吗?[/quote]你用的是 XP,所以以为你用的是 SQL Server 2000。 SQL SERVER 2008 没有在 XP 下用过,SQL SERVER 2005及以下用过,没有问题。[/quote] 谢谢十豆三老师: 本来装的是双系统,因嫌SERVER 2003启动慢,就在XP上装了SQL SERVER 2008.为了让贴子能帮到其它有需要的人,我先不结贴,待验证后再结贴。
十豆三 2013-10-21
  • 打赏
  • 举报
回复
SQL SERVER是WIN XP,必须打上 SQL Server 2000 Service Pack 4,否则客户端无法连接。
GEORGECHIN1 2013-10-21
  • 打赏
  • 举报
回复
十豆三老师: 是在控制面板中手工测试的,就是不通,SQL SERVER是WIN XP做的。客户端是WIN 7.我再搜搜看。
十豆三 2013-10-21
  • 打赏
  • 举报
回复
你在客户端也不用 VFP 程序来试,直接用 客户端 的控制面板中的数据源手工测试,连接不上的话,肯定是你服务器有设置不对的地方。再去 SQL Server 端搜索或提问一下。
tlliqi 2013-10-20
  • 打赏
  • 举报
回复
还是连不上?
GEORGECHIN1 2013-10-20
  • 打赏
  • 举报
回复
引用 26 楼 tlliqi 的回复:
还是连不上?
是的,我在服务器上无论是在WINDOWS的ODBC上还是在VFP用代码都可以成功连接,但在局域网上就是连不上,报的是服务器不存在或者拒绝登录的错误。 服务器上的伺服功能能开的我都全打开了,防火墙也关了,防毒也退了,搞不懂为什么就是不通。
GEORGECHIN1 2013-10-20
  • 打赏
  • 举报
回复
引用 24 楼 xilaianzxsc 的回复:
楼主怎么不结贴呢.
不好意思,这几天有点小忙。 改过之后还是连不上,我也不知道是什么原因!
xilaianzxsc 2013-10-17
  • 打赏
  • 举报
回复
楼主怎么不结贴呢.
十豆三 2013-10-16
  • 打赏
  • 举报
回复
1.SQL用的是WINDOWS验证方式;
这就不对了。应该改为 混合验证 方式,如下图:
GEORGECHIN1 2013-10-16
  • 打赏
  • 举报
回复
引用 16 楼 apple_8180 的回复:
手动配制 ODBC 也无法连接,说明不是 VFP 代码问题。 剩下你再找一下: 1、网络问题。 2、SQL Server 设置、补丁等。 3、系统防火墙。 。。。
谢谢十豆三老师。 1.SQL用的是WINDOWS验证方式; 2.服务协议全部都有打开,其端口也有指定; 3.在服务器上联也不能指定UID,如果指定在连接的对话框中不管输入什么用户品都登不了,但勾选“使用验证的登录”就可以联接上 4.在服务器上手动在控制面板上加数据源可以连接上,在VFP中可以用这个数据源建立远程视图; 5.但在局域网上的其它电脑就不行。WINDOWS可以访问到服务器,PING服务器也是通的。
都市夜猫 2013-10-15
  • 打赏
  • 举报
回复
引用 13 楼 u011120096 的回复:
cConnectStr=[driver={SQL Server};server=127.0.0.1;uid=sa;pwd=111111;database=dxwb] 在局域网上出现这样的错误,但在服务器上可以成功连接!
简直就是猪脑子,有用 127.0.0.1 连接非本机 sql server 的吗?
十豆三 2013-10-15
  • 打赏
  • 举报
回复
手动配制 ODBC 也无法连接,说明不是 VFP 代码问题。 剩下你再找一下: 1、网络问题。 2、SQL Server 设置、补丁等。 3、系统防火墙。 。。。
GEORGECHIN1 2013-10-15
  • 打赏
  • 举报
回复
引用 19 楼 apple_8180 的回复:
[quote=引用 13 楼 u011120096 的回复:] 在局域网上出现这样的错误,但在服务器上可以成功连接!
在服务器上可以成功连接,是因为 127.0.0.1 是指本地,就是服务器,当然可以连接。 在局域网上要连接服务器,要将 127.0.0.1 换成 服务器的 IP 或 计算机名称。[/quote]
引用 17 楼 dkfdtf 的回复:
[quote=引用 13 楼 u011120096 的回复:] cConnectStr=[driver={SQL Server};server=127.0.0.1;uid=sa;pwd=111111;database=dxwb] 在局域网上出现这样的错误,但在服务器上可以成功连接!
简直就是猪脑子,有用 127.0.0.1 连接非本机 sql server 的吗? [/quote] 用的当然是服务器的IP地址了,我的服务器IP是192.168.1.110
sdjnjdxc 2013-10-15
  • 打赏
  • 举报
回复
版主急了
十豆三 2013-10-15
  • 打赏
  • 举报
回复
引用 13 楼 u011120096 的回复:
在局域网上出现这样的错误,但在服务器上可以成功连接!
在服务器上可以成功连接,是因为 127.0.0.1 是指本地,就是服务器,当然可以连接。 在局域网上要连接服务器,要将 127.0.0.1 换成 服务器的 IP 或 计算机名称。
lc_apple 2013-10-15
  • 打赏
  • 举报
回复
GEORGECHIN1 2013-10-14
  • 打赏
  • 举报
回复
引用 14 楼 apple_8180 的回复:
[quote=引用 13 楼 u011120096 的回复:] [quote=引用 12 楼 tch680805 的回复:] 连接sql,很简单明了的方法: cConnectStr=[driver={SQL Server};server=127.0.0.1;uid=sa;pwd=111111;database=dxwb] &&这段后面四个参数改成你自己的. sql_suc=SQLSTRINGCONNECT(cConnectStr) IF SQLEXEC(sql_suc,[select * from 操作员],'tmp')<1 &&查询 MESSAGEBOX('数据库连接失败或者SQL查询失败!') else select tmp brow ENDIF IF SQLEXEC(sql_suc,[update 操作员 set 密码='' where 操作员代码='001'])<1 &&更新 MESSAGEBOX('数据库连接失败或者SQL失败!') ENDIF IF SQLEXEC(sql_suc,[delete 操作员 where 操作员代码='001'])<1 &&删除 MESSAGEBOX('数据库连接失败或者SQL失败!') ENDIF IF SQLEXEC(sql_suc,[insert into 操作员 (操作员代码,姓名) values ('001','管理员')])<1 &&新增 MESSAGEBOX('数据库连接失败或者SQL失败!') ENDIF
在局域网上出现这样的错误,但在服务器上可以成功连接![/quote] 不用程序,就是抛开 VFP ,手工通过控制面板配制一下 ODBC 看看不能成功,就知道是不是 VFP 程序问题了。[/quote] 也不能!
加载更多回复(14)

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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