各位大哥,问一个用VC2005连接Oracle的问题,我现在使用ADO的方式连接,可以成功连接到数据库中默认的用户和表
但却始终无法用自己新建的用户进行连接
也无法访问自己新建的表
而这一些在SQLPLUS中都没有问题
我估计问题可能出在数据库的配置方面,但我始终也没弄清楚,请大哥们赐教.
我只有15分了,全给上,若能解决,我再去申请几个号给分都行,郁闷死我了.

解决方案 »

  1.   

    假设你创建了用户名test1
    你需要相应的执行授权并配备相应的表空间才能访问数据库中的资源。典型的:
    sqlplus "/ as sysdba"
    grant connect, resource to test1为test1设置表空间
    create tablespace test1_ts datafile 'c:/Program Files/iihero.dat' SIZE 20M extent management local autoallocatealter user test1 default tablespace test1_ts;这样以后就可以正常使用了。
      

  2.   

    谢谢你的回复
    一,在用ADO进行连接的时候,我可以访问系统的system和scott用户,于是我新建两个用户,让它们的权限分别和system及scott相同,但遗憾的是,两个新用户都无法访问.
    二,当我用scott用户进行连接时,我直接访问其中的dept表是没有问题的,但在其中新建一个表client之后却无法访问,提示“表或视图不存在”
    也就是说,我所做的任何修改在VC中都无法获取。
      

  3.   

    谢谢你的回复
    我创建用户的方式是通过独立启动Oracle Enterprise Manager之后,用system用户以dba的方式连接数据库之后再执行的,新用户也具备connect和resource权限。不知道这样新建的用户行不行。
    另外由于我不是通过代码创建的,所以建表时表空间为默认,我最后看了一下,应该是system表空间。
    如果说系统中的其它信息都无法访问的话,那应该是我连接方式有问题。
    现在的关键是能访问数据库中自带的,但却无法访问我自己新建的。
      

  4.   

    你建的表client是用scott用户创建的?创建在哪个表空间下的,比如你是用client用户创建的名字叫test的表,那么你访问的时候应该象类似如下访问: select * from scoott.test ......
      

  5.   

    在scott用户下有一个表是dept,我又创建了一个表为client
    用scott用户连接后,在VC中使用"select * from dept"是没有问题的
    但用"select * from client"就出现刚才所说的错误了,client和dept的表空间是同一个
      

  6.   

    现在我对连接方式做了以下测试:
    一、在VC中通过ADO方式连接ACCESS,测试通过
    二、在VB中通过ADO方式连接ORACLE,测试也通过,只不过此时连接方式改成了数据源
    三、在VB中通过ADO该项连接ORACLE,使用在VC中相同的方式,同样出现和VC中一样的问题通过测试,说明VC中的ADO是没有问题的,ORACLE的新建的表也可以被访问
    但为什么不用数据源就不能访问新建的表呢,难道是连接字符串还有什么问题吗
    我的连接方式是这样写的:
    Provider=OraOLEDB.Oracle;Data Sourse=oracledb;User ID=system;Password=macs524
    如果想要在这个连接方式中加上以DBA的方式的话,该怎么加呢?
      

  7.   

    找了原因了,原来是我有两个数据库,删掉一个,并定义了默认的SID就行了,但很奇怪的是我当时引用是写正确了的,居然出现没访问表