vfp客户端通过ODBC和SQL2000连接报错,紧急高分求助

motto 2005-02-27 01:04:07
近日在运行由VFP6编写的客户端程序访问服务器时报错如下,几经折腾都没能找出原因,高分求助.
SQL2000已经打了SP3,服务器端和客户端也都经高手指点重新安装了MDAC2.8。
提示:这个错误是近日才发生的,以前运行的都没有问题,系统设置没有更改过,只是进行了杀毒软件防火墙升级,我也看不出是否和防火墙有关系。

连接错误[Microsoft][ODBC SQL Server Driver][SQL Server]: statisti.cpp:3987
Expression: CLUSTIND==indBase.indindid || TABENTRY == indBase.indindid
SPID: 54
Process ID: 684"

(1526)([MICROSOFT][ODBC SQL SERVER DRIVER[]SQL SERVER]LOCATION: STATISTI.CPP:3987
EXPRESSION: CLUSEIND==INDBASE.INDINDID || TABENTRY == INDBASE.INDINDID
SPID: 54
PROCESS ID: 684)
...全文
110 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
motto 2005-02-28
  • 打赏
  • 举报
回复
修改VFP中的连接"连接服务器数据"
将Data processing中的Asynchronous execution(异步执行)打勾后编译后再执行,出现以下错误

"连接错误:
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionCheckForData(CheckforDate())."
(1526)([MICROSOFT][ODBC SQL SERVER DRIVER][DBNETLIB]CONNECTIONCHECKFORDATA(CHECKFORDATA().)
motto 2005-02-28
  • 打赏
  • 举报
回复
ODBC配置用户数据源和系统数据源,测试连接均成功,问题是利用SQLCONNECT("连接服务器数据")时发生错误.

"连接服务器数据"是我在VFP中创建的连接.VFP中所有的远程视图都是经由此"连接服务器数据"建立的.
在VFP中对远程视图操作都没有任何问题,甚至在VFP的command窗口中执行nConnectHandle = SQLCONNECT("连接服务器数据"),也没有问题,得到的nConnectHandle=1. 关键是编译后,独立运行时就出现问题.

真是奇怪?!!!!

motto 2005-02-28
  • 打赏
  • 举报
回复
如何测试SQL2000数据库是否损坏,我在客户端测试ODBC,得到结果是成功的.我的WEB服务器后台数据库也是SQL2000支持的,运行很好,没有出问题.

为做实验,我昨天在另外一台SQL2000服务器上装上了数据(通过从原服务器上数据备份,然后还原安装的),设置了ODBC,还是连不上,后来我把其中的一个数据表删除后,却可以联上了.但这个数据表不能没有呀!,我再添加上此表后,又连不上了.我甚至是添加一个同名的空表,也导致连不上.以前可是一直都运行的好好的.难道和数据库大小也有关系?
LAIYANGPJ 2005-02-28
  • 打赏
  • 举报
回复
看SQL2000数据库是否损坏(可以通过另建一个简单的数据库测试能否正常连接)
dzhfly 2005-02-27
  • 打赏
  • 举报
回复
试过关掉防火墙用吗?
myfoxprox 2005-02-27
  • 打赏
  • 举报
回复
nConnectHandle = SQLCONNECT("连接服务器数据")
AERROR(MYERROR)

IF MYERROR(1)=1526 &&ODBC出错
? "错误信息:"+MYEEROR(2)
? "ODBC错误:"+MYERROR(3)
? "ODBC状况:"+MYERROR(4)
? "数据源 :"+STR(MYERROR(5))
? "数据句柄:"+STR(MYERROR(6))
ENDIF

用AERROR(MYERROR)确定是什么地方出错,按你上面所显示的内容,好象是ODBC驱动有问题
ostrichwjf 2005-02-27
  • 打赏
  • 举报
回复
我也是用vfp客户端访问 sql server 2000,
我用的是下面的语句
nConnectionHandle = SQLCONNECT('car','car','car') &&三个car分别是数据库、用户名、密码
runtemp=SQLEXEC(nConnectionHandle,"select * from rundata where Run_c='0'order by run_begin,driver_name","run") && 引号中是sql语句,run为临时表
根据上面两句将要得到的数据生成临时表run,然后就是对临时表run的操作了。
motto 2005-02-27
  • 打赏
  • 举报
回复
补充说明,客户端ODBC连接测试是成功的.连接是在VFP项目文件中建立的.连接名是"连接服务器数据"

客户端是使用FOXPRO连接代码如下:
WAIT WINDOW "正在连接主机,请稍候..." NOWAIT NOCLEAR
nConnectHandle = SQLCONNECT("连接服务器数据")
WAIT CLEAR
IF nConnectHandle < 0
= MESSAGEBOX("连接主机失败!",MB_ICONEXCLAMATION,TO_LOC)
RETURN .F.
ENDI
没等执行=MESSAGEBOX(),就出现上面给出的连接错误

2,726

社区成员

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

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