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