ODAC是什么,没用过。用ODBC,BDE不行吗?我用的就是ODBC for oracle的数据源驱动,比较好用。
ODBC for oracle 客户端要安ORACLE客户端吧,比较麻烦ODAC不用安
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']);
为了安全及效率,OraQuery不能直接通过dbgrid改数据,(如果设localupdate=true,只会更新本地数据而非服务器) 你可设 OraQuery1.UpdateSQL为 UPDATE t SET A = :A, B = :B, WHERE ROWID = :OLD_ROWID 这样就可以更新服务器上的数据了 你也可以在OraQuery1的Macros来处动生成所有的Update/insert/delete...的SQL
还要注意的是,你必须用以下SQL select rowid,a,b from t 如果你有唯一值的字段,你也可用它来代替rowid
不会是别人写的一个接口函数的吧,那个orasession.execsql()
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就可以呢
用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']);
为什么我操作了,他不保存,而用ado就可以呢
谁能解释一下什么原因?
你可设
OraQuery1.UpdateSQL为
UPDATE t
SET
A = :A,
B = :B,
WHERE
ROWID = :OLD_ROWID
这样就可以更新服务器上的数据了
你也可以在OraQuery1的Macros来处动生成所有的Update/insert/delete...的SQL
select rowid,a,b from t
如果你有唯一值的字段,你也可用它来代替rowid
还请多多指教
我试过,不得行诶
也许吧
要不你用你的ODAC弄个demo,发给我看看
内容就是操作dbgrid的 [email protected]