Unicode paramter error
Posted: Thu 04 Jun 2009 11:08
Hi
I use Delphi 2009,ODAC 6.80.0.47 and Oracle 9.0.1.1.1
Oracle Server Character Set : UTF8
TOrasesion.Option.Direct := True;
TOrasesion.Option.Charset := '';
TOrasesion.Option.Unicode := True;
I use the TSmartQuery component to query Unicode SQL
SQL)
Select * from all_object where object_name = '작업테이블'
=> Query success
but error does occur if use parameter
Sample Code:
procedure TForm11.FormCreate(Sender: TObject);
begin
OCIUnicode := True;
OraSession1.Connect;
end;
QTemp.SQL.Text := 'Select * from all_object where object_name = :obj';
QTemp.ParamByName('obj').DataType := ftString;
QTemp.ParamByName('obj').Value := '작업테이블';
QTemp.Open;
or
QTemp.SQL.Text := 'Select * from all_object where object_name = :obj';
QTemp.ParamByName('obj').DataType := ftString;
QTemp.ParamByName('obj').asString := '작업테이블';
QTemp.Open;
or
QTemp.SQL.Text := 'Select * from all_object where object_name = :obj';
QTemp.ParamByName('obj').DataType := ftWideString;
QTemp.ParamByName('obj'). Value := '작업테이블';
QTemp.Open;
error mesage is
ORA-01460: unimplemented or unreasonable conversion requested
--------------------------------------------------------------------------
same error does occur even if TOraSession.Options.CharSet = UTF8
Error does not occur if Oracle Server Character Set is AL32UTF8 or KO16MSWIN949 .
Error does not occur if TOraSession.Options.Direct=False
Thanks for any helep
I use Delphi 2009,ODAC 6.80.0.47 and Oracle 9.0.1.1.1
Oracle Server Character Set : UTF8
TOrasesion.Option.Direct := True;
TOrasesion.Option.Charset := '';
TOrasesion.Option.Unicode := True;
I use the TSmartQuery component to query Unicode SQL
SQL)
Select * from all_object where object_name = '작업테이블'
=> Query success
but error does occur if use parameter
Sample Code:
procedure TForm11.FormCreate(Sender: TObject);
begin
OCIUnicode := True;
OraSession1.Connect;
end;
QTemp.SQL.Text := 'Select * from all_object where object_name = :obj';
QTemp.ParamByName('obj').DataType := ftString;
QTemp.ParamByName('obj').Value := '작업테이블';
QTemp.Open;
or
QTemp.SQL.Text := 'Select * from all_object where object_name = :obj';
QTemp.ParamByName('obj').DataType := ftString;
QTemp.ParamByName('obj').asString := '작업테이블';
QTemp.Open;
or
QTemp.SQL.Text := 'Select * from all_object where object_name = :obj';
QTemp.ParamByName('obj').DataType := ftWideString;
QTemp.ParamByName('obj'). Value := '작업테이블';
QTemp.Open;
error mesage is
ORA-01460: unimplemented or unreasonable conversion requested
--------------------------------------------------------------------------
same error does occur even if TOraSession.Options.CharSet = UTF8
Error does not occur if Oracle Server Character Set is AL32UTF8 or KO16MSWIN949 .
Error does not occur if TOraSession.Options.Direct=False
Thanks for any helep