Delphi 中用query.SQL.add() insert前Oracle怎
需要下面段SQL在Delphi中表出:
BEGIN
DELETE FROM C_ROUTE_NAME_T WHERE ROUTE_CODE=766;
INSERT INTO C_ROUTE_NAME_T VALUES(766,'321',1,sysdate);
DELETE FROM C_ROUTE_CONTROL_T WHERE ROUTE_CODE=766;
INSERT INTO C_ROUTE_CONTROL_T VALUES (766,'0','1/KRC_IN',0,1,'0',sysdate);
END;
其中sysdate用什麽函?
我直接由Now表示,字符型
[解决办法]
为什么不用odac组件呢。
[解决办法]
对不起,笔误,应该是:
Exec_Query.SQL.Text:=
'BEGIN' + #13#10 +
' DELETE FROM C_ROUTE_NAME_T WHERE ROUTE_CODE=:P_CODE;' + #13#10 +
' INSERT INTO C_ROUTE_NAME_T VALUES(:P_CODE,:Parm2,1,sysdate);' + #13#10 +
' DELETE FROM C_ROUTE_CONTROL_T WHERE ROUTE_CODE=:P_CODE;' + #13#10 +
' INSERT INTO C_ROUTE_CONTROL_T VALUES (:P_CODE,:Parm3,:Parm4,0,1,''0'',sysdate);' + #13#10 +
'END;';
Exec_Query.Parameters.ParamByName('P_CODE').Value:=RC;
......
Exec_Query.ExecSQL;
[解决办法]
sysdate应该是oracle数据库服务器的日期时间,而now是客户机的日期时间,
应该先执行 select sysdate from dual得到服务器的日期时间,并保存至一datetime变量即可,
楼主为什么还要用datetostr(now)+''+timetostr(now)+') 这样的函数呢?
[解决办法]
- Delphi(Pascal) code
'... (766,''0'',''1/KRC_IN'',0,1,''0'','+Quotedstr(DateTimeToStr(Now))+');';时间用Oracle自带的函数sysdate就好了