Ado, Unicode, Oracle troubles


2005-10-27 11:37:27 PM
delphi190
Hello, All!
I am implementing now Unicode support in a application, working both on
MS-Sql & Oracle 9 trough ADO.
On (MS SQL +Ado) all works fine, on (Oracle + Oracle Direct Access (Odac))
all works fine, but on (Oracle+Ado) there is a lot of trouble.
Delphi 6, Oracle 9 server.
1) I cannot setup (after study manuals & search whole Internet) unicode
support for Oracle 9 client Ole Db Provider.
Only Oracle 10 client works right.
Solution:just use Oracle 10 client
2) TAdoQuery.Parameters.Refresh & TAdoStoredProc.Parameters.Refresh doesn't
return right parameter type on Oracle. They only clear Parameters
collection.
Solution: just use creating parameters manually.
3) I can not change TParameter.DataType in TAdoQuery to ftWideString. It is
ftFixedChar after assignment.
4) I cannot use parameters in WHERE clause (by Oracle Ole DB Provider
Manual).
I can not also use N` literals in AdoDataset.CommandText
Solution: just use UNISTR function with AdoDataset.CommandText
5) Simple form with DBGrid - Datasource - AdoDataset
AdoDataset.CommandText:= 'select * from some_table'
some_table - table with primary key.
All works fine, when I change any field value, except fields with NVARCHAR2
type.
When I change fields with NVARCHAR2 type, I get exception "Row cannot be
located for updating. Some values may have been changed since it was last
read"
Solution: I have no idea, how to fix this bug.
Has anyone ever had same problems?
Could you give me any advice, what to do?
With best regards, Serg Soorskih. E-mail: XXXX@XXXXX.COM