const short DELETED_ROW = 2;
const short FLAG_AUTO_INCREMENT = 1;
const short FLAG_CASE_SENSITIVE = 2;
const short FLAG_CHAR_AS_STRING = 32;
const short FLAG_CURRENCY = 4;
const short FLAG_SEARCHABLE = 8;
const short FLAG_UNIQUE = 64;
const short FLAG_UNSIGNED = 16;
const short INSERTED_ROW = 1;
const short NULLABLE_NO = 0;
const short NULLABLE_UNKNOWN = 2;
const short NULLABLE_YES = 1;
const short ORIGINAL_ROW = 0;
const short TYPE_BINARY = 1001;
const short TYPE_BOOLEAN = 1003;
const short TYPE_BYTE = 1006;
const short TYPE_DATE = 1012;
const short TYPE_DATE_TIME = 1014;
const short TYPE_DECIMAL = 1010;
const short TYPE_DOUBLE = 1005;
const short TYPE_FLOAT = 1004;
const short TYPE_INT = 1008;
const short TYPE_INTEGER = 1011;
const short TYPE_LONG = 1009;
const short TYPE_NULL = 0;
const short TYPE_SHORT = 1007;
const short TYPE_STRING = 1002;
const short TYPE_TIME = 1013;
const short UPDATED_ROW = 3;
const short UTC_OFFSET = 10000;
const short WRITABLE_NO = 0;
const short WRITABLE_UNKNOWN = 2;
const short WRITABLE_YES = 1;
Convenience for generating proxies for all types.
struct AllTypesStructure
{
XDT::BooleanArray theBooleanArray;
XDT::ByteArray theByteArray;
XDT::ShortArray theShortArray;
XDT::IntArray theIntArray;
XDT::LongArray theLongArray;
XDT::FloatArray theFloatArray;
XDT::DoubleArray theDoubleArray;
XDT::StringArray theStringArray;
XDT::BooleanValue theBooleanValue;
XDT::FloatValue theFloatValue;
XDT::DoubleValue theDoubleValue;
XDT::ByteValue theByteValue;
XDT::ShortValue theShortValue;
XDT::IntValue theIntValue;
XDT::LongValue theLongValue;
XDT::DecimalValue theDecimalValue;
XDT::IntegerValue theIntegerValue;
XDT::DateValue theDateValue;
XDT::TimeValue theTimeValue;
XDT::DateTimeValue theDateTimeValue;
XDT::DataTable theDataTable;
};
typedef sequence < boolean > BooleanArray;
struct BooleanValue
{
boolean value;
boolean isNull;
};
typedef sequence < octet > ByteArray;
struct ByteValue
{
octet value;
boolean isNull;
};
typedef sequence < char > CharArray;
struct CharValue
{
char value;
boolean isNull;
};
Additional meta-data is optionally specified using pre-defined and user-defined properties. The pre-defined properties are:
| Name | Type | Value |
|---|---|---|
| maxExclusive | (column type) | see XML Schema Part 2 - Datatypes |
| maxInclusive | (column type) | see XML Schema Part 2 - Datatypes |
| minExclusive | (column type) | see XML Schema Part 2 - Datatypes |
| minInclusive | (column type) | see XML Schema Part 2 - Datatypes |
| minLength | TYPE_INT | see XML Schema Part 2 - Datatypes |
| pattern | TYPE_STRING | see XML Schema Part 2 - Datatypes |
| javaClassName | TYPE_STRING | see java.sql.RowSetMetaData.getColumnClassName |
| sqlCatalogName | TYPE_STRING | see java.sql.RowSetMetaData.getCatalogName |
| sqlSchemaName | TYPE_STRING | see java.sql.RowSetMetaData.getSchemaName |
| sqlTableName | TYPE_STRING | see java.sql.RowSetMetaData.getTableName |
| sqlTypeName | TYPE_STRING | see java.sql.RowSetMetaData.getColumnTypeName |
| whiteSpace | TYPE_STRING | see XML Schema Part 2 - Datatypes |
| xsdType | TYPE_STRING | see XML Schema Part 2 - Datatypes |
struct DataColumn
{
string name;
string label;
short type;
short flags;
short displaySize;
short isNullable;
short isWritable;
short precision;
short scale;
long maxLength;
long sqlType;
XDT::PropertyMap properties;
};
typedef sequence < XDT::DataColumn > DataColumnList;
struct DataRow
{
long type;
XDT::PropertyMap properties;
XDT::DataValueList values;
};
typedef sequence < XDT::DataRow > DataRowList;
Additional meta-data is optionally specified using pre-defined and user-defined properties. The pre-defined properties are:
| Name | Type | Value |
|---|---|---|
| dwSyntax | TYPE_STRING | PowerBuilder DataWindow Syntax |
struct DataTable
{
XDT::PropertyMap properties;
XDT::DataColumnList columns;
XDT::DataRowList rows;
};
union DataValue switch (short)
{
case TYPE_NULL: short nullValue;
case TYPE_BINARY: XDT::ByteArray binaryValue;
case TYPE_STRING: string stringValue;
case TYPE_BOOLEAN: boolean booleanValue;
case TYPE_FLOAT: float floatValue;
case TYPE_DOUBLE: double doubleValue;
case TYPE_BYTE: octet byteValue;
case TYPE_SHORT: short shortValue;
case TYPE_INT: long intValue;
case TYPE_LONG: long long longValue;
case TYPE_DECIMAL: string decimalValue;
case TYPE_INTEGER: string integerValue;
case TYPE_DATE: XDT::DateInfo dateValue;
case TYPE_TIME: XDT::TimeInfo timeValue;
case TYPE_DATE_TIME: XDT::DateTimeInfo dateTimeValue;
};
typedef sequence < XDT::DataValue > DataValueList;
struct DateInfo
{
long year;
octet month;
octet day;
short zoneOffset;
};
struct DateTimeInfo
{
long nanosecond;
long year;
octet month;
octet day;
octet hour;
octet minute;
octet second;
short zoneOffset;
};
struct DateTimeValue
{
XDT::DateTimeInfo value;
boolean isNull;
};
struct DateValue
{
XDT::DateInfo value;
boolean isNull;
};
struct DecimalValue
{
string value;
boolean isNull;
};
typedef sequence < double > DoubleArray;
struct DoubleValue
{
double value;
boolean isNull;
};
typedef sequence < float > FloatArray;
struct FloatValue
{
float value;
boolean isNull;
};
typedef sequence < long > IntArray;
struct IntegerValue
{
string value;
boolean isNull;
};
struct IntValue
{
long value;
boolean isNull;
};
typedef sequence < long long > LongArray;
struct LongValue
{
long long value;
boolean isNull;
};
struct Property
{
string name;
XDT::DataValue value;
};
typedef sequence < XDT::Property > PropertyMap;
typedef sequence < short > ShortArray;
struct ShortValue
{
short value;
boolean isNull;
};
typedef sequence < string > StringArray;
struct TimeInfo
{
long nanosecond;
octet hour;
octet minute;
octet second;
short zoneOffset;
};
struct TimeValue
{
XDT::TimeInfo value;
boolean isNull;
};