本帖最后由 apple_8180 于 2012-05-12 16:28:17 编辑

解决方案 »

  1.   

    一个朋友用他的 Windows 7 系统帮忙试了一下,居然可以运行,难道是我的这个用户的 Windows 7 不支持?(用户的系统的确不是标准的,是从微软定制的,不过目前未发现不能运行的程序)我朋友的的环境与我用户的环境不同如下:
    朋友:
        正常的 Windows 7系统
        安装了 DELPHI 7.0用户
        定制的 Windows 7系统
        未安装 DELPHI 7.0下一步我安装一下 DELPHI 7.0 试试。
      

  2.   

    win7机器上是否有sql2000和sq2005共存的问题
    我有个这样的系统,说什么也连不上数据库,网上所有的方法都试过无效,无奈,只保留一个2005,通过
      

  3.   

    本帖最后由 apple_8180 于 2012-05-14 10:04:25 编辑
      

  4.   

    用 Delphi 7.0 手工通过 BDE 连接 SQL Server 2000 也不行,估计是 BDE 的原因。我找一找 BDE 相关的问题。
    如果有朋友知道是哪个版本的 BDE 可以,麻烦指点一下,多谢了。
      

  5.   

    不可能,程序中可能设置了什么设置了
    楼主可以将这个Borlndmm.dll文件也复制到程序文件夹下试试吧
      

  6.   

    可以确定的是,Win7+D7+MSSQL连接是没问题的自己可以一步步排除
    比如, 打开Delphi 7,试试ADO连接,试试BDE连接,BDE连接又试试连接系统的DBDEMOS...
    连接不上都会有错误提示的,自己看着办了
      

  7.   

    多谢,把 Borlndmm.dll 拷贝到程序当前目录和 System32 下还是不行。
    我安装了 BDE5.2 ,用 Delphi 建了一个 BDE 连接可以连接数据库了,不过把程序重新编译还是不行。我再研究研究,可能是程序中有特殊的地方。没安装 BDE5.2 之前,用 BDE5.01 时,用 Delphi 通过 BDE 无法连接上数据库。
      

  8.   

    程序可以在win7下编译通过吧,如果可以正常编译就单步调试一下连接数据库的代码看看,在哪里出错了,找到出错点,就好办了。可以通过bde手动连接数据库试试看。
      

  9.   

    楼主数据库 一排的勋章..
    有代码装delphi测试最好了,  错误的地方能断点出来
      

  10.   

    昨晚我用 Delphi 新建了一个一个 工程A,用 BDE 可以连接数据库了,然后又打开原来程序工程,用其中Database1(原来建的 BDE 连接) 也可以连接。今天早上开机后,先打开原来程序工程,用 Database1 连接不上了,报 General SQL error,再打开昨晚的 工程A,也连接不上,报一样的错。于是再重启电脑后,新建 工程B,可以连接上,再打开原来程序工程,用 Database1 也可以连接。再重启电脑后,先打开原来程序工程,用 Database1 连接不上了,报 General SQL error,再打开 工程B,也连接不上,报一样的错。于重启电脑后,先打开 工程B,可以连接上,再打开原来程序工程,用 Database1 也可以连接。好像很有规律呀。BDE5.01 和 BDE 5.2 都是上面现象。
      

  11.   

    本帖最后由 apple_8180 于 2012-05-14 10:05:15 编辑
      

  12.   

    我的测试环境如下:
    WINXPSP3+DELPHI7+MSSQL2008
    WIN7SP1+DELPHI7+MSSQL2005
    同样的一套程序,我测试都是正确的
      

  13.   

    1、bde这个很老的数据库驱动在win7下,某个注册表或什么的配置方式被禁用了?
    2、win7里没有sql的客户端组件?或有但没配好?
      

  14.   

    多谢!
    1、BDE设置已经按照如下地址的方法设置过了,还有其他设置吗?
    http://blog.sina.com.cn/s/blog_4f1096500100pazk.html
    2、win7里已经安装了 SQL Server 2000(SP4),其实就是连接本机的数据库。在 WIN7 下需要特殊配制?
      

  15.   

    应该可以的,我现在delphi7开发的程序在我Win7系统上运行没问题,程序中访问数据库用的是ADO
      

  16.   

    我们的这个老程序用的是 BDE
      

  17.   

    下面链接说的文件在我的 Win 7 的 System 32 下有,而且比 XP 下的更新,想用 XP 下的覆盖 Win 7 的,不让覆盖,权限问题,我的 Win 7 用户是管理员(不是超级管理员),而且可以替换其他文件,这几个文件替换不了。
    在Win7下运行使用BDE的程序
      

  18.   

    问题解决了。
    不是程序的问题,也不是 BDE 的问题,更不是 Win7 的问题。
    原来是程序目录和源程序目录下的ntwdblib.dll 文件版本问题ntwdblib.dll 文件版本:1998.11.13 产品版本:7.00.623 应该是SQL Server 7.0的文件这个文件换成
    ntwdblib.dll 文件版本:2000.80.2039 产品版本:8.00.2039 应该是SQL Server 2000的文件就可以了。
    同时在没有安装 SQL Server 的XP也可以连接了,所有问题都是这个文件版本的原因。
      

  19.   

    13楼、14楼的现象
    是因为开机连接时加载的 ntwdblib.dll 文件版本:2000.80.2039 
    如果开机用老程序不能连接,是因为加载的是 ntwdblib.dll 文件版本:1998.11.13源程序目录也是 ntwdblib.dll 文件版本:1998.11.13,所以调试时也不行。终于解决了,感谢各位的关注!结帖给分。