delphi2010+odac 6.90.0.53 update error!
Posted: Fri 29 May 2009 09:14
my oracle version is 10.2.0.4
delphi 2010.
ODAC in direct mode.
create table USERDATA
(
USERID NUMBER(22),
STIME DATE,
ETIME DATE,
BZ VARCHAR2(10)
)
with cx do
begin
close;
SQL.Clear;
SQL.Add('UPDATE USERDATA SET ETIME=SYSDATE, BZ=:BZ');
SQL.Add('WHERE USERID=:USERID');
ParamByName('USERID').Asstring:= '48';
ParamByName('BZ').AsString := 'logout';
Execute; // show unknown error 1!
end;
if changed to
with cx do
begin
close;
SQL.Clear;
SQL.Add('UPDATE USERDATA SET ETIME=SYSDATE, BZ=:BZ');
SQL.Add('WHERE USERID=:USERID');
ParamByName('USERID').Asinteger:= strtoint('48');
ParamByName('BZ').AsString := 'logout';
Execute;
end;
It works fine!
but in SELECT , INSERT ParamByName('USERID').Asstring:= '48' works fine.
delphi 2010.
ODAC in direct mode.
create table USERDATA
(
USERID NUMBER(22),
STIME DATE,
ETIME DATE,
BZ VARCHAR2(10)
)
with cx do
begin
close;
SQL.Clear;
SQL.Add('UPDATE USERDATA SET ETIME=SYSDATE, BZ=:BZ');
SQL.Add('WHERE USERID=:USERID');
ParamByName('USERID').Asstring:= '48';
ParamByName('BZ').AsString := 'logout';
Execute; // show unknown error 1!
end;
if changed to
with cx do
begin
close;
SQL.Clear;
SQL.Add('UPDATE USERDATA SET ETIME=SYSDATE, BZ=:BZ');
SQL.Add('WHERE USERID=:USERID');
ParamByName('USERID').Asinteger:= strtoint('48');
ParamByName('BZ').AsString := 'logout';
Execute;
end;
It works fine!
but in SELECT , INSERT ParamByName('USERID').Asstring:= '48' works fine.