CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  控件

使用ADODC控件时,连接字符串设置必须给出数据库的绝对路径吗?,怎样用相对路径?

楼主newyc(刚起床的猫头鹰(呵呵,我是路过这里D))2002-06-19 19:46:31 在 VB / 控件 提问

我设置成   data   sourse=   app.path   &   "\temp.mdb"   后,   窗体加载时,总是告诉我"连接错误". 问题点数:100、回复次数:17Top

1 楼qhzxcz(真想练练降龙十八掌)回复于 2002-06-19 19:59:43 得分 0

我也遇到过类似的问题,给你一个函数,我引用它好长一段时间了,没出问题.  
    '用特定的筛选条件(MyRecordSource)连接特定的数据库(MyDatabase)两个参数来连接数据库中的某张表(MyTable),数据库的密  
                                                                            '码为DataBasePassword    
                                                                              '并指定特定的字段(MyFields),返回特定的值,不绑定数据控件  
   
  Function   adoconnect3(ByVal   MyDatabase   As   String,   ByVal   MyTable   As   String,   ByVal   MyFields   As   String,   ByVal   MySQLCondition1   As   String)   As   Recordset  
         
        Dim   MyRs   As   ADODB.Recordset  
        Dim   MyConnectString   As   String  
        Dim   sql   As   String  
         
    '''   打开连接。  
        If   Right(App.Path,   1)   =   "\"   Then   '当前路径(含\)  
                  apppath   =   App.Path  
              Else  
                  apppath   =   App.Path   &   "\"  
          End   If  
        MyPath   =   apppath   +   "database\"  
        MyConnectString   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=   "   &   MyPath   &   MyDatabase   &   ";Jet   OLEDB:Database   Password="   &   DataBasePassword    
        Set   MyCnn   =   New   ADODB.Connection  
        MyCnn.Open   MyConnectString  
         
        ''建立RecordSet  
        Set   MyRs   =   New   ADODB.Recordset  
        sql   =   "SELECT   "   &   MyFields   &   "     FROM   "   &   MyTable   &   MySQLCondition1  
          MyRs.CursorLocation   =   adUseClient  
        MyRs.LockType   =   adLockBatchOptimistic  
        MyRs.CursorType   =   adOpenKeyset  
       
        ''给函数赋值  
        MyRs.Open   sql,   MyCnn  
        Set   adoconnect3   =   MyRs  
         
      End   Function  
   
  主要是app.path   中是否包含"\".  
  如不包含就得手动添加  
   
  Top

2 楼qhzxcz(真想练练降龙十八掌)回复于 2002-06-19 20:32:23 得分 0

to   newyc(刚起床的猫头鹰)    
  我也是使用的相对路径啊.  
  看看这个对你的问题是否会有帮助  
  If   Right(App.Path,   1)   =   "\"   Then   '当前路径(含\)  
                  apppath   =   App.Path  
              Else  
                  apppath   =   App.Path   &   "\"     '当前路径(不含\)  
          End   If  
  主要是app.path   中是否包含"\".  
  含"\".   :app.path   &   "temp.mdb"      
   
  不含"\".   app.path   &   "\temp.mdb"      
   
   
   
  快捷图标也就不能放到客户的桌面上,恕无能为力.  
  Top

3 楼zgtt(闻涛)回复于 2002-06-19 23:01:03 得分 10

可以用相对路径,  
  我就用相对的路径,  
  一个例子  
  Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=db1.mdb;Persist   Security   Info=False  
  就是在指定数据库时,把路径改改。  
  你可以建立一个名为db1.mdb,  
  测试一下。Top

4 楼QQRN(笨QQ-馊主意提供者)回复于 2002-06-19 23:51:46 得分 0

简单呀  
  App.Path  
  得到程序的所在目录  
  如果是根目录就没有"\"  
  用  
        If   Right(App.Path,   1)   =   "\"   Then   '当前路径(含\)  
                  apppath   =   App.Path  
              Else  
                  apppath   =   App.Path   &   "\"  
          End   If  
  是正确的Top

5 楼QQRN(笨QQ-馊主意提供者)回复于 2002-06-19 23:54:12 得分 0

同   zgtt(闻涛)    
  调试时候可以把   data   sourse设置为固定的,然后运行时候改掉...Top

6 楼Explorer001()回复于 2002-06-20 00:02:11 得分 0

用   DAO   或   ADO   正确访问   Access   2000    
   
   
  当你使用   DAO   访问   Access   2000   时,是否会出現以下的错误信息?  
   
  "Run-time   error   3343   Unrecognized   Database   Format   XXX"  
   
  这个错误信息有二个解決的方式:  
   
  1、如果你是使用   Data   Control   来连結   Access   2000   的资料库时:  
   
  你必須在設定   Data   Control   的   Source   前先加上一行  
  Set   Data1.Recordset   =   rsDAO36   'rsDAO36   is   a   DAO   3.6  
   
  2、如果你是引用「Microsoft   DAO   3.51   Object   Library」来访问   Access   2000   的资料库时:  
   
  請加入【工程】【部件】「Microsoft   DAO   3.6   Object   Library」  
   
   
  如果你是使用   ADO   访问   Access   2000  
   
  以往在   VB6   中利用   ADO   OLEDB   Provider   3.51   使用   Access   97   資料库,程序都能正常的執行。但是自从將   Access   97   升級到   Access   2000   之后,就无法順利的使用   Access   2000   資料库了,不知道您是否也曾遇到这样的情形呢?  
   
  其实这种事情在   Microsoft   已经是思空見慣的事情了!任何软件只要有了新的版本,就会有和旧版本不相容的问题产生!  
   
  而這一次是因为   Access2000   己经使用   Jet   4.0   Engine,所以解決方法如下:  
   
   
  在您的   ADO   的   Connect   String   中的   Provider   必須修改为:"PROVIDER=Microsoft,Jet.OLEDB.4.0"    
  Top

7 楼Explorer001()回复于 2002-06-20 00:11:57 得分 0

“我设置成   data   sourse=   app.path   &   "\temp.mdb"   后,   窗体加载时,总是告诉我"连接错误".”  
   
   
  一,我想你不会是这种错误吧  
   
        1   adodc1.RecordSource   =     app.path   &   "\temp.mdb"  
        2   data   sourse   是你的变量名?  
   
  二,注意下载并安装Microsoft   Data   Access   Components   (MDAC)   2.6   SDK  
  或2.7Top

8 楼liusalmon(梦尝)回复于 2002-06-20 16:28:13 得分 10

你最好用2000数据库  
  送给你以前做的一个程序的部分代码希望对你有帮助  
  With   Adodc1  
          .ConnectionString   =   "   Provider=Microsoft.Jet.OLEDB.4.0;"   &   _  
          "Data   Source="   +   App.Path   +   "\shitiku.mdb;"   &   _  
          "Persist   Security   Info=False;"   &   _  
          "Jet   OLEDB:Database   Password=*******"  
          .RecordSource   =   "select   *   from   填空"  
          .Refresh  
  end   with  
  Top

9 楼zjaloe(zj)回复于 2002-06-20 17:07:27 得分 0

可能你的安装程序没有把数据库拷到安装目录下,才找不到的。  
  Top

10 楼zhengxy6(六子)回复于 2002-06-20 17:25:32 得分 0

关注,我也有同样问题,真BTTop

11 楼zjaloe(zj)回复于 2002-06-20 17:54:58 得分 0

用的是97数据库,换换数据源连接方法,这样你看行不?  
  adodc1.ConnectionString   =   "driver={microsoft   access   driver   (*.mdb)};uid=;pid=;dbq="   &   App.path   &   "\illness.mdb"  
  Top

12 楼banweihui(KBoy)回复于 2002-06-20 18:24:57 得分 0

俺是学生,俺不会,俺能不能问点问题阿:是关于SQL与VB的问题,我开始用的SQL   SERVER7.0做的数据库,,用VB6做的应用程序,不是很难的那种拉,现在有两个问题,第一,把7。0,中的数据库导入另一台机器的sql2000里,并且让应程序还能调用它(我已经弄好了,把Data文件夹拖过来,设置好ODBC,以及程序中的登录设置,但是,不知道这样会不会有我现在还不知道的麻烦出现,请各位大侠指点)………………第二个问题,我不知道如何解决:把数据库倒过来后(笔记本),另一台机器也升级为sql2000了,而且,应用程序都是一样的,两台机器拥有相同的数据库和应用程序,可以联机工作,也可以单独工作,问题就是,两台机器的数据必须一致,比如笔记本出去工作,数据更新了,同时,台式机在家工作,数据也更新了,笔记本回来后,两边要互相更新,但又不能用简单的SQL2000里的方法,因为操作员是指懂得操作的,我们所提供的就是一个或几个按钮,这时,我就不会了~~~请大侠们支援~解决方法email:banweihui@sina.com  
  Top

13 楼szyino(午夜敲门的蜥蜴)回复于 2002-06-21 01:17:25 得分 80

adodc控件的属性一定要先清空.  
   
  在程序的开始就要把路径代码加进去.  
   
  切记............Top

相关问题

  • 使用ADODC控件时,连接字符串设置必须给出数据库的绝对路径吗?
  • 如何使用ADODC控件的中的 "ADODC属性"生成连接字符串
  • 绝对路径字符串转换?
  • 如何设置ADODC控件的路径??????
  • 在vc中关于路径字符串的格式问题
  • 关于取字符串创建路径的问题。
  • XSL中怎么样把某个字符串转成路径?
  • 如何获得CEdit控件输入的字符串
  • CEdit控件内输出字符串如何控制换行?
  • 急!MSComm控件怎么发送字符串?

关键词

  • sql2000
  • vb6
  • 数据库
  • 控件
  • 连接
  • sql
  • 应用程序
  • 数据
  • access
  • 路径

得分解答快速导航

  • 帖主:newyc
  • zgtt
  • liusalmon
  • szyino

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo