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)+') 这样的函数呢?
[解决办法]
'... (766,''0'',''1/KRC_IN'',0,1,''0'','+Quotedstr(DateTimeToStr(Now))+');';时间用Oracle自带的函数sysdate就好了