你这是VB中的代码还是ASP中的代码?

解决方案 »

  1.   

    dsn=bookk?
    還要遠程訪問?
    弄清楚系統數據源是了麼?
    哪是對本機來說的!provider該用SQLOLEDB看看。。﹝。。﹝。
      

  2.   

    请问,你的ACCESS数据库是不是OFF2000.如果是97的数据连接,用的是2000的ACCESS就有可能出现问题,他的提示就是未知错误。也不知对不对,希望做参考。
      

  3.   

    和蓝石头同样的疑问,你这DSN是在客户端建的吗?试试换一种连接方式,不要用DSN。
      

  4.   

        问题不是出在这里,而是DSN是用于单机执行的,就是说你在你的电脑上设了一个DSN后,
    只有在你的电脑上运行的程序才能够使用它,别人通过网络连到你的电脑上是不能够使用你
    电脑上的DSN的。
        至于你所说的虚拟目录和IIS,这个概念就让人不能够理解了,这些应该都是WEB编程中的
    概念,例如ASP。你不可能通过VB直接用ASP编程的方法访问在IIS中设定的虚拟目录中的ACCESS
    数据库文件的。如果你一定要访问数据库的话,那么建议你别使用ACCESS,而使用SQL SERVER
    这样就不存在什么问题。要知道,ACCESS只是一个桌面型的数据库,只能用于单机版本。
      

  5.   

    ODBC是什么?是 客 户 端 指向 数据提供者 的数据连接..
    若这个Provider是Access,则DSN只能指向本地的一个表。
    DSN对于网络中的其他用户是不可见的...
    所以在用VB+ADO开发Client/Server(注意:不是Browse/Server)时,
    不可能指望在客户端使用服务器上的DSN。不管是用户DSN,还是系统DSN都不行但在ASP就是另一种概念。因为一般情况下,ASP的Data Server就是
    ASP的Application Server  也就是说,IIS和数据库是放在一台机器上的。
    这样我们就可以在ConnectionString中这样写
    ConnRemote.Open "MyDSN"
    (MyDSN 是服务器上的一个系统DSN,相对于ASP的程序而言,是本地的DSN,)
    That's Enough!这是因为ASP程序其实是在服务器端运行的,用户在IE中看到的,其实是ASP程序的执行结果
    实际上还是在操作本地的DSN!所以,我认为你的概念有误。
    应该在服务器上建ODBC数据源,在ASP中用代码访问服务器上的数据源,
    (相对于ASP的执行环境-IIS,那就是本地的数据源)一定可以成功。
      

  6.   

       ADO(RDS)是可以用来进行远程访问的呀,难道挂在服务器上的数据库就不能是Access,一定要用SQL server、Sybase等大型数据库?
      

  7.   

    若你使用VB来做Client/Server的程序,连接远程数据库不能用
    ODBC+Access这种形式
    因为Access不能提供远程数据的访问服务,除非你把这个表共享(我想这不是你所要的):)
    要在桌面用ADO访问远程数据库,
    建议使用SQL Server + OLEDB 或用 ODBC指向远程的SQL Server 这都能够连接成功。
    直接用OLEDB不用建DSN,直接Open "Provider=SQLOLEDB1;..."
    而ODBC还要建DSN,然后在ConnString中打开DSN。我说得够明白了么希望对你有所帮忙打字真累:)
      

  8.   

    中子先生:
        你好,我以前用的是ASP开发B/S,现在要用VB开发Clint/Server,后端要用Access数据库,我该如何用Provider进行连接?用RDS也行,可最好不在程序中用相对路径,比如说:c:\intpub\wwwroot\bookk.mdb,能不用就不用。
        谢谢你
      

  9.   

    陈进先生:
        如果你一定要用Access做远程的网络数据库,C/S我认为只有共享.mdb文件这一个方法。
        ADO的ConnString说穿了和ODBC的DSN一样是个指针,怎么可能指向没有数据服务的东东
    不信你试试在VB中添加一个Adodc来连接一下...Provider选Jet4,只能连接在"我的电脑"里
    能看见的Access数据库。但若选SQL Server,就能看到局域网内所有的SQL Server...
    (能不能连接上那要看你有没有权限了)
        话我已经说到这个份上了。
        祝你成功,不要再用Access了。
      

  10.   

    中子Sir:
        你好,
        SQL server我以前用过,但这次必须要用Access,很无奈;难道就真的没办法了吗?难道说非要逼我用Winscok写C/S程序吗?
      

  11.   

    陈进Sir:用WinSock那不累死了吗?再说怎么绑定表格控件呀...
    你还是共享.mdb吧。然后用net use x: \\servername\.mdb Path
    映射一个网络驱动器,象本地硬盘一样访问。
    不用相对路径很Easy,在程序中写好了。但一般的需求都是不用绝对路径,
    象你这样不用相对路径我还是第一次见
    ConnString = "Provider=Jet 4.0 OLEDB;..."
    那样的话ADO就能连接上了。或者你再找别的高手问问?...我是没辙了。Best Regards
      

  12.   

    中子呀,
       你可知道我的程序本身有5个以上的数据库,这个程序还要分别安装到10台以上的计算机上使用,而且各台计算机上的数据还不一样,各台计算机上的数据还要求能够互相查看,我该怎么办?我总不能让每台计算机上都安装SQL server吧。我若让共享或映射网络驱动器岂不是出现数据安全性问题了吗?即使用映射驱动器的方法,每台电脑上要映射多少驱动器?
       在帮我想想办法吧,亲爱的中子!
       YOU May mail to me: [email protected]  
      

  13.   

    难道不能把所有的数据库放到一台机器上吗?
    这样只要在一台机器上装sql server 就行了。
      

  14.   

    同意runrunrun的。若是因为这个非要用Access大可不必
    这不过是一个权限分配的问题罢了你给每个用户的表分配为只能每个用户可以修改但其他用户可见,
    不就everything ok了?
      

  15.   

    to runrunrun
       我也很想把数据库放到一台服务器上,做成集中式的,可这是客户的要求呀,我只能照办。
    实在不行我只有用Winsock写C/S了,我也很不想那么做,老兄们,再帮小弟想想法子吧。
      

  16.   

    '这是ado方式的调用,数据源不用provider,而是用dsn,如果你配置好了dsn,肯定是ok.
    '多个数据库在不同机子上,就配置不同的系统dsn。
    dim gcn as adodb.connection
    dim grs as adodb.recordset
    set gcn=new adodb.connection
    gcn.open "dsn=bookk"
    set grs =new adodb.recordset
    grs.open "SELECT * FROM userb",gcn,adlockoptimistic,adopenforwardonly 
      

  17.   

    ****但若选SQL Server,就能看到局域网内所有的SQL Server...
    这句话有问题!!!我曾经作过一个系统,从一个县城的营业点写数据到一个地区(比如桂林)sql数据库应该说这是一个写广域网的sql数据库
      

  18.   

    如果你必须用Access,恐怕你的服务器只是一个完全共享的文件服务器了,而且必须映射!!
    这样的话数据库的安全一点保障都没了!!
      

  19.   

      真的就没别的办法了吗?
    clint-----IP----->server(计算机)--->odbc---->dsn---->数据库(*.mdb)
      这种形式行不通吗?
      

  20.   

      真的就没别的办法了吗?
    clint-----IP----->server(计算机)--->odbc---->dsn---->数据库(*.mdb)
      这种形式行不通吗?
      

  21.   

    hehe,柳飘风同志,我说的确实是局域网,而不是广域网:)
    我说得不太严密...也许我应该说得详细一点。
    局域网,同一域内所有被配备成命名管道连接的SQL Server
    可以被Adodc和SQL Server企业管理器看到
    广域网和域外被配成TCP/IP连接方式的SQL Server可以打IP连接上,但是看不到这样你满意了?*_*coolyangbo:
    说到映射,我想可以通过NT或Novell的域用户安全机制来代替数据库安全机制
    即无权使用程序的用户也无权通过网络使用这个数据库文件!
    这样会不会好些?Mr.陈进:
    再说一次,ODBC的DSN只在本机上可见,在网络上的其他机器上是看不到其他机器
    的DSN的。所以这种形式一定行不通