本人现在需要在在Delphi下用ODAC连接Oracle数据库,同时需要往Oracle数据库里面用Insert语句插入一条记录。语句不会写啊!高手帮我写个例子吧:比如往Table里面插入记录,Table的字段为 x1,x2,都为String型 
SQL语句需要能作为OraSession.ExecSQL()的参数执行

解决方案 »

  1.   

    'insert into table values ( ' + value1 + ',' + value2 + ')'楼主说的这个驱动我确实是没有使用过,如果不对见谅啊,就当作给你提升人气了,呵呵
      

  2.   

    odac是什么驱动,用ado自己带的 ole db for orcalw就可以很简单的链接上数据库
    不会是别人写的一个接口函数的吧,那个orasession.execsql()
      

  3.   

    我也用ODAC,插入语句跟SQL SERVER一样的我用ODAC连的把exe文件发到别人机子上,不能运行,提示安ODAC
      

  4.   

    ODAC 写的 insert 语句写法与ADO。BDE 的都是一样的。没有区别。
      

  5.   

    'insert into table values ( ' + ''''+value1 +''''+ ','+'''' + value2 +''''')'
      

  6.   

    各位大哥,好像还是不能执行啊,大家是用的是OraSession嘛?
      

  7.   

    楼主借个地方http://community.csdn.net/Expert/topic/4657/4657406.xml?temp=.7981226各位也帮我看看这帖子关于ADO+ORACLE 9i和ODAC+ORACLE的
      

  8.   

    还是不行啊,谁能帮我写一个OraSession.ExecSQL()的SQL语句啊?
      

  9.   

    你用oraQuery控件吧,它的属性里有sql的更新\插入\删除等属性,我觉得比table控件.你试试,说不定会有收获的
      

  10.   

    你用OraSession+OraQuery把  oraq.Close;
      oraq.SQL.Text:='insert into tblname(ID,Name) values('
                  +quotedstr(inttostr(6))+','
                  +quotedstr('lp')+')';
      try
        oraq.ExecSQL;
      except
        showmessage('ok');
      end;
    你们用OraQuery查询出来数据显示在dbgrid里面,能否在dbgrid里面直接进行修改,添加等,操作后,他自动保存了吗?
    为什么我操作了,他不保存,而用ado就可以呢
      

  11.   

    ODAC是什么,没用过。用ODBC,BDE不行吗?我用的就是ODBC   for oracle的数据源驱动,比较好用。
      

  12.   

    ODBC   for oracle  客户端要安ORACLE客户端吧,比较麻烦ODAC不用安
      

  13.   

    odac是delphi下访问oracle最好的控件,它不用安装oracle客户端,是除直接用proc*c以外效率最高的,且对oracle支持最好的.
    用OraSession1.ExecSQL很简单
    方法1:无参数直接插入
      OraSession1.ExecSQL('insert into t values(''1'',''2'')',[]);
    方法2:用delphi处理参数:
      OraSession1.ExecSQL('insert into t values('''+edit1.Text+''','''+edit2.Text+''')',[]);
    方法3:用OraSession1.ExecSQL本身的参数:
    OraSession1.ExecSQL('insert into t values(:a,:b)',['1','2']);
      

  14.   

    你们用OraQuery查询出来数据显示在dbgrid里面,能否在dbgrid里面直接进行修改,添加等,操作后,他自动保存了吗?
    为什么我操作了,他不保存,而用ado就可以呢
    谁能解释一下什么原因?
      

  15.   

    为了安全及效率,OraQuery不能直接通过dbgrid改数据,(如果设localupdate=true,只会更新本地数据而非服务器)
    你可设
    OraQuery1.UpdateSQL为
    UPDATE t
    SET
      A = :A,
      B = :B,
    WHERE
      ROWID = :OLD_ROWID
    这样就可以更新服务器上的数据了
    你也可以在OraQuery1的Macros来处动生成所有的Update/insert/delete...的SQL
      

  16.   

    还要注意的是,你必须用以下SQL
    select rowid,a,b from t
    如果你有唯一值的字段,你也可用它来代替rowid
      

  17.   

    楼主应该会用ADO吧。SQL语句与ADO一样的。query与adoquery操作方法也类拟。
      

  18.   

    keiy() 你说的方法我试了一下,还是不行,也许是我没有设置正确吧
    还请多多指教
      

  19.   

    如果你要直接修改而不用事务,设OraSession1.AutoCommit=true;并一定要设localupdate=false
      

  20.   

    如果你要直接修改而不用事务,设OraSession1.AutoCommit=true;并一定要设localupdate=false
    我试过,不得行诶
      

  21.   

    会不是你的ODAC的版本问题,我用的是老版本( 4.15),没有问题
      

  22.   

    不知道诶
    也许吧
    要不你用你的ODAC弄个demo,发给我看看
    内容就是操作dbgrid的 [email protected]
      

  23.   

    楼主,实在不好意思,借你的地方问了这么多问题,我的问题解决了,不知你的如何,这里的高手真多诶keiy我另外开张贴,你来接分哈,200谢谢各位了
      

  24.   

    能把odac的demo发我一份吗?谢谢[email protected]