Hi,

I am using C++Builder6 on WinXPSP3, with Devart's dbExpress driver. I declared 
a enumeration type called 'professionEnum', which is used by my variable 
'profession'. I get an error: 'Cannot access field 'rootcause' as type Text', 
if I try and enter a value into the enum field.

1. I create the table as follows:
CREATE TABLE IF NOT EXISTS 
status( 
statusCode BIGINT PRIMARY KEY,
description VARCHAR(50),
level SMALLINT,
rootCause rootCauseEnum,
material VARCHAR(100),
actionTaken VARCHAR(50)
)

2. I add an enum type 'rootCauseEnum' as follows:
AnsiString SQL;

  SQL = "CREATE TYPE ";
  SQL = SQL + edtEnumerationType->Text;    // My entry: rootCauseEnum
  SQL = SQL + " AS ENUM ( ";
  SQL = SQL + edtEnumerationList->Text; // My entry: 
'none','unknown','elec','oil'
  SQL = SQL + " )";

  int errorCode = frmDataModule->eyeConnection->ExecuteDirect(SQL);

3. I add a record to the status table from the command prompt which works fine 
as follows:
eye=# INSERT INTO status VALUES( 100002, 'Running', 0, 'none', 'Not 
applicable', 'NA');

4.I add a record to the status table from C++Builder as follows:
I have an edit box for every field, as I enter the following all is fine:
statusCode=100003
description=Stopped
level=0
As I enter any of the following into the rootCause field:
rootCause=none
rootCause=1
I get the following error:
Cannot access field 'rootcause' as type Text. 
Therefore before I apply the updates to the table, i get the error.

The field 'rootCause' is indicated as (Memo) in run-time.

This worked fine when I used MySQL. With MySQL I can enter
rootCause=none
or

rootCause=1

Thanks.

Charl
                                          

Reply via email to