测试环境:windows2000 server,oracle9i,delphi7。
1。建立odbc数据源,[microsoft odbc for oracle],数据源名称:myoracle,用户名称:scott,服务器:chigo 。
2。新建一个application,然后再建一个remote data module,Coclass name 为test,加入控件database,aliasname为myoracle,
databasename为dataserver,设置handleshared为true,然后把connected属性设为true,用scott\tiger登陆,连接数据库成功;
3。加入query,datasetprovider,设置checkquery:databasename :dataserver,Sql语句:select * from popedom
popedom为oracle数据库scott方案下的一个表,checkquery连接成功,
4。把datasetprovider的dataset设为checkquery,然后保存工程为testserver,并运行一遍应用服务器;
5。新增加一个application,添加控件clientdataset,dcomconnection,datasource,dbgrid,
1) 设置dcomconnection,computername为127.0.0.1,servername为testserver.Test,并获得了serverguid,
2) 把connected设为true,他就报错:unknown user name or password.[microsoft][odbc driver for oracle]
[oracle] ora-01017 :invalid username/password;logon denied alias:dataserver。
这是为什么啊???

解决方案 »

  1.   

    TDatabase的LoginPrompt属性设为False.
      

  2.   

    现在数据库能连接上了,为何数据提交不了?就是在客户端数据applyupdates以后,数据库
    里面没有更新?但是客户端没有提示更新失败啊!
      

  3.   

    客户端的提示需要你自己去响应ClientDataSet的OnReconcileError事件去看出了什么错
      

  4.   

    提示错误:operation not applicable。
    能告诉我是什么原因吗?
      

  5.   

    什么adoconnect?我没有使用ado控件啊,我使用dcom连接,三层结构的。
      

  6.   

    将客户端中使用的TClientDataSet的Delta传给服务端,在服务器端打开对应的表进行更新操作。
      

  7.   

    客户端直接用applyupdates这样子不行吗?
      

  8.   

    applyupdates后面跟参数了吗?
    还有看看你的数据库,是不是数据库设计的问题
      

  9.   

    applyupdates(0).
    数据库设计的问题?具体所指?
      

  10.   

    oracle要commit后数据库中才会看到具体的记录,三层控件自己好象
    有事务控制!
      不懂啊!
      关注!!!
       up!
      

  11.   

    应用服务层用ADOconnection连接,adoquery;
    我这里客户端 clientdataset.ApplyUpdates(0)很正常,当然后用socketconnection更方便!