Problem with GetFieldNames

Discussion of open issues, suggestions and bugs regarding usage of dbExpress drivers for Oracle in Delphi and C++Builder
Post Reply
rant801601
Posts: 18
Joined: Wed 25 Jan 2006 09:28

Problem with GetFieldNames

Post by rant801601 » Wed 25 Jan 2006 09:34

I use Oracle NET driver to connect to Oracle 9.
SQLConnection.GetFieldNames doesn't work in particual situation:

EnableBCD=False

only if I use ALTER SESSION after connect:

alter SESSION set NLS_TERRITORY = SLOVENIA
alter SESSION set NLS_LANGUAGE = SLOVENIAN
alter SESSION set NLS_NUMERIC_CHARACTERS = ".,"
alter SESSION set NLS_DATE_FORMAT = "dd.mm.yyyy hh24:mi:ss"

When I change EnableBCD to True then I get FieldNames or
when I don't alter session (but I need to).

Thank's for any help !

Paul
Posts: 725
Joined: Thu 28 Oct 2004 14:06

Post by Paul » Mon 06 Mar 2006 08:13

We couldn't reproduce the problem. Results are the same.
What error message do you have? What values are different?

rant801601
Posts: 18
Joined: Wed 25 Jan 2006 09:28

Post by rant801601 » Tue 18 Apr 2006 11:57

Your support is very bad !!

You need more than 1 month to reply (this is not
serious).

I have this problem when I retrieve fields from table
that has numeric fields.

Paul
Posts: 725
Joined: Thu 28 Oct 2004 14:06

Post by Paul » Thu 20 Apr 2006 06:59

We cannot reproduce this problem with DbxOda 3.00.0, 2.50.6, Oracle server 9.2.0.1, "Oracle Net (Core Lab)" connection with default settings and EnableBCD=False.

Code: Select all

procedure TForm1.Button1Click(Sender: TObject);
var
  L: TStringList;
begin
  L:=TStringList.Create;
  try
    SQLConnection1.Open;
    SQLConnection1.Execute('alter SESSION set NLS_TERRITORY = SLOVENIA', nil);
    SQLConnection1.Execute('alter SESSION set NLS_LANGUAGE = SLOVENIAN', nil);
    SQLConnection1.Execute('alter SESSION set NLS_NUMERIC_CHARACTERS = ".,"', nil);
    SQLConnection1.Execute('alter SESSION set NLS_DATE_FORMAT = "dd.mm.yyyy hh24:mi:ss" ', nil);
    SQLConnection1.GetFieldNames('NUMBER_TYPES', L);
    Memo1.Lines.Assign(L);
  finally
    L.Free;
  end;
end;

Code: Select all

CREATE TABLE NUMBER_TYPES (
  ID NUMBER NOT NULL,
  F_NUMBER_1 NUMBER(1),
  F_NUMBER_6 NUMBER(6),
  F_NUMBER_9 NUMBER(9),
  F_NUMBER_10 NUMBER(10),
  F_NUMBER_14 NUMBER(14),
  F_NUMBER_15 NUMBER(15),
  F_NUMBER_16 NUMBER(16),
  F_NUMBER_18 NUMBER(18),
  F_NUMBER_20 NUMBER(20),
  F_NUMBER_14_1 NUMBER(14,1),
  F_NUMBER_14_4 NUMBER(14,4),
  F_NUMBER_14_5 NUMBER(14,5),
  F_NUMBER_14_8 NUMBER(14,8),
  F_NUMBER_22_10 NUMBER(22,10),
  F_NUMBER NUMBER
)
The result is

Code: Select all

ID
F_NUMBER_1
F_NUMBER_6
F_NUMBER_9
F_NUMBER_10
F_NUMBER_14
F_NUMBER_15
F_NUMBER_16
F_NUMBER_18
F_NUMBER_20
F_NUMBER_14_1
F_NUMBER_14_4
F_NUMBER_14_5
F_NUMBER_14_8
F_NUMBER_22_10
F_NUMBER
Please send us complete sample to demonstrate it to DbxOda support address and include script
to create server objects.

rant801601
Posts: 18
Joined: Wed 25 Jan 2006 09:28

Post by rant801601 » Fri 21 Apr 2006 15:26

I have tested 2.50.6 and it work's now !

I have checked again with 2.50.5 and yes there
was bug but you fixed it in 2.50.6.

Thank you !

Post Reply