Database update commands - IntelByteBuffer

Commands

Delete Rows command:   Intel Byte Buffer parameters

Command code:

Value:   0x00011006

Input parameters:

Parameter 0 of the Delete Rows command is a byte array in the following format:

 Field  Data type  Values
 Header length  4-byte signed integer   20
 Offset to database version  4-byte signed integer  offset from start of buffer
 Offset to database name  4-byte signed integer  offset from start of buffer
 Number of column filters  4-byte signed integer  1 (multiple column filters 
 not currently supported)
 Offset to start of column 
 filter 1 (column filter 1 
 data type)
 4-byte signed integer  offset from start of buffer
 Database version  Compressed unicode string  1.2
 Database name  Compressed unicode string  TWGServer
 Column Filter 1 data type  4-byte signed integer an array type value
 Offset to the number of 
 values for filter 1 (number 
 of  values precedes the 
 values)
 4-byte signed integer  offset from start of buffer
 Offset to filter 1 table name  4-byte signed integer  offset from start of buffer
 Offset to filter 1 column 
 name
 4-byte signed integer  offset from start of buffer
 Offset to filter 1 operator  4-byte signed integer  offset from start of buffer
 Filter 1 number of values  4-byte signed integer  
 Filter 1 value 1  matches filter data type  
 Filter 1 value 2  matches filter data type  
 etc....  matches filter data type  
 Filter 1 value n  matches filter data type  
 Filter 1 table name  Compressed unicode string  
 Filter 1 column name  Compressed unicode string  
 Filter 1 operator  Compressed unicode string  

Expressed as a C++ structure, the input Parameter 0 data definition is:

struct {
        long    HeaderLength;     /* number of bytes before the string data*/
        long    off_dbVersion;    /* number of bytes from start of buffer  */
                                  /* to database version string            */
        long    off_dbName;       /* number of bytes from start of buffer  */
                                  /* to database name string               */
        long    nFilter;          /* number of column filters              */
        long    off_f1;           /* number of bytes from start of buffer  */
                                  /* to the column filter 1 data type      */
        byte    DatabaseVersion[];/* as a compressed Unicode string        */
        byte    DatabaseName[];   /* as a compressed Unicode string        */
        long    f1DataType;       /* coded data type of the first filter   */
        long    off_nValues;      /* number of bytes from start of buffer  */
                                  /* to number of values for filter 1      */
        long    off_f1TableName;  /* number of bytes from start of buffer  */
                                  /* to table name for filter 1            */
        long    off_f1ColumnName; /* number of bytes from start of buffer  */
                                  /* to column name for filter 1           */
        long    off_f1Operator;   /* number of bytes from start of buffer  */
                                  /* to operator for filter 1              */
        long    f1nValues;        /* number of filter 1 values             */
        F1TYPE  f1Value[f1nValues];  /* here F1TYPE is filter 1 data type  */
        byte    f1TableName[];    /* as a compressed Unicode string        */  
        byte    f1ColumnName[];   /* as a compressed Unicode string        */  
        byte    f1Operator[];     /* as a compressed Unicode string        */  
 }

Return codes:

 Code  Meaning 
 0  Success
 1  Invalid command
 3  Exception
 4  SQL Error
 102  Parameter error

Output parameters:  None

Find Table by Class Name command:   Intel Byte Buffer parameters

Command code:

Value:   0x00011004

Input parameters:

Input parameter 0 of the Find Table by Classname command is a byte array in the following format:
 Field  Data type  Values
 Header length  4-byte signed integer   12 
 Offset to database version  4-byte signed integer  offset from start of buffer
 Offset to table class name  4-byte signed integer  offset from start of buffer
 Database version  Compressed unicode string  1.2
 Table class name  Compressed unicode string  

Expressed as a C++ structure, the Input Parameter 0 data definition is:

struct {
    long    HeaderLength;      /* number of bytes from start of buffer      */
                               /* to database version string                */
    long    off_dbVersion;     /* number of bytes from start of buffer      */
                               /* to database version string                */
    long    off_ClassName;     /* number of bytes from start of buffer      */
                               /* to the table class name                   */
    byte    DatabaseVersion[]; /* as a compressed Unicode string            */
    byte    ClassName[];       /* as a compressed Unicode string            */
 }

Return codes:

 Code  Meaning 
 0  Success
 1  Invalid command
 3  Exception

Output Parameters:

If the return code is 0 from the command, output parameter 0 results that is a byte array in the following format:

 Field  Data type  Values
 Offset to database version  4-byte signed integer  offset from start of buffer
 Offset to table token name  4-byte signed integer  offset from start of buffer
 Database version  Compressed unicode string  
 Table token name  Compressed unicode string  

Expressed as a C++ structure, the Output Parameter 0 data definition is:

struct {
    long    off_dbVersion;     /* number of bytes from start of buffer      */
                               /* to database version string                */
    long    off_TokenName;     /* number of bytes from start of buffer      */
                               /* to table token name string                */
    byte    DatabaseVersion[]; /* as a compressed Unicode string            */
    byte    TokenNmae[];       /* as a compressed Unicode string            */
 }

Get Database Metadata command:  Intel Byte Buffer Parameters

Command code:

Value:   0x00011005

Input parameters:

Parameter 0 of the Get Database Metadata  command is a byte array in the following format:

 Field  Data type  Values
 Header length  4-byte signed integer  12 
 Offset to database version  4-byte signed integer  offset from start of buffer
 Offset to database name   4-byte signed integer  offset from start of buffer
 Database version  Compressed unicode string  1.2
 Database name  Compressed unicode string  TWGServer

Expressed as a C++ structure, the Input Parameter 0 data definition is:

struct {
    long    HeaderLength;      /* number of bytes from start of buffer      */
                               /* to database version string                */
    long    off_dbVersion;     /* number of bytes from start of buffer      */
                               /* to database version string                */
    long    off_dbName;        /* number of bytes from start of buffer      */
                               /* to database name string                   */
    byte    DatabaseVersion[]; /* as a compressed Unicode string            */
    byte    DatabaseName[];    /* as a compressed Unicode string            */
 }

Return codes:

 Code  Meaning
 1  Invalid command
 3  Exception

Output Parameters:

If the return code is 0 from the command, an output parameter 0 results that is a byte array in the following format:

 Field  Data type  Values
 Offset to database version  4-byte signed integer  offset from start of buffer
 Offset to product name  4-byte signed integer  offset from start of buffer
 Offset to product version  4-byte signed integer  offset from start of buffer
 Offset to driver  4-byte signed integer  offset from start of buffer
 Offset to driver version  4-byte signed integer  offset from start of buffer
 Number of select columns  4-byte signed integer  Maximum number of 
 columns allowed in a 
 select statement
 Number of select tables  4-byte signed integer  Maximum number of tables 
 allowed in a select statement
 Database version  Compressed unicode string  Director database version 
 Database product name  Compressed unicode string  
 Database product version  Compressed unicode string  
 Database driver  Compressed unicode string  
 Database driver version  Compressed unicode string  

Expressed as a C++ structure, the Output Parameter 0 data definition is:

struct {
    long    off_dbVersion;     /* number of bytes from start of buffer      */
                               /* to database version string                */
    long    off_prodName;      /* number of bytes from start of buffer      */
                               /* to product name string                    */
    long    off_prodVersion;   /* number of bytes from start of buffer      */
                               /* to product version string                 */
    long    off_Driver;        /* number of bytes from start of buffer      */
                               /* to driver string                          */
    long    off_driverVersion; /* number of bytes from start of buffer      */
                               /* to driver version string                  */
    long    nSelectColumns;    /* maximum number of selectable database     */
                               /* columns.                                  */
    long    nSelectTables;     /* maximum number of selectable tables       */
    byte    DatabaseVersion[]; /* as a compressed Unicode string            */
    byte    ProductName[];     /* as a compressed Unicode string            */
    byte    ProductVersion[];  /* as a compressed Unicode string            */
    byte    DatabaseDriver[];  /* as a compressed Unicode string            */
    byte    DriverVersion[];   /* as a compressed Unicode string            */
 }

Replace Managed Object command:  Intel Byte Buffer Parameters

Command code:

Value:   0x00011012

Input parameters:

Parameter 0 of the Replace Managed Object  command is a byte array in the following format:

 Field  Data type  Values
 Header length  4-byte signed integer   20 
 Offset to database version  4-byte signed integer  offset from start of buffer
 Offset to database name   4-byte signed integer  offset from start of buffer
 Managed object id  4-byte signed integer  
 Number of table rows  4-byte signed integer  
 Database version  Compressed unicode string  1.2
 Database name  Compressed unicode string  TWGServer

Expressed as a C++ structure, the input Parameter 0 data definition is:

struct {
        long    HeaderLength;     /* number of bytes before the string data*/
        long    off_dbVersion;    /* number of bytes from start of buffer  */
                                  /* to database version string            */
        long    off_dbName;       /* number of bytes from start of buffer  */
                                  /* to database name string               */
        long    moid;             /* managed object identifier             */
        long    nRows;            /* number of table rows                  */
        byte    DatabaseVersion[];/* as a compressed Unicode string        */
        byte    DatabaseName[];   /* as a compressed Unicode string        */
 }

Parameters 1 through n, where n is the number of table rows, describe the supplied column names and values as follows:

 Field  Data type  Values
 Offset to table token name  4-byte signed integer   offset from start of buffer 
 Number of columns  4-byte signed integer  
 Offset to start of column 1  4-byte signed integer  offset from start of buffer
 Offset to start of column 2  4-byte signed integer  offset from start of buffer
   etc...  4-byte signed integer  offset from start of buffer
 Offset to start of column n  4-byte signed integer  offset from start of buffer
 Table token name  Compressed unicode string  
 Offset to column 1 token name  4-byte signed integer  offset from start of buffer
 Column 1 data type  4-byte signed integer an array type value
 Offset to column 1 value  4-byte signed integer  offset from start of buffer
 Column 1 value  matches column data type  
 Column 1 token name  Compressed unicode string  
 Offset to column 2 token name  4-byte signed integer  offset from start of buffer
   etc....    

Expressed as a C++ structure, the input Parameter n data definition is:

struct {
     long    off_TableTokenName;       /* offset from the start of the buffer */
                                       /* to the table token name string      */
     long    nColumns;                 /* number of table columns             */
     long    off_Column[nColumns];     /* number of bytes from start of buffer*/
                                       /* to start of each column             */                          
     byte    TableTokenName[];         /* as a compressed Unicode string      */
     struct column_data data[nColumns];/* a variable-length structure         */
                                       /* for each column                     */
 };
 
 struct column_data {
     long    off_ColumnTokenName;      /* number of bytes from start of       */ 
                                       /* buffer to this column token name    */
     long    ColumnDataType;           /* coded data type of the column       */
     long    off_ColumnValue;          /* number of bytes from start of       */
                                       /* buffer to this column value         */
     byte    ColumnValue[];            /* sized according to data type        */
     byte    ColumnTokenName[];        /* as a compressed Unicode string      */
 }

Return codes:

 Code  Meaning
 1  Invalid command
 3  Exception
 102  Parameter error

Output parameters:   None.

Store Rows command: Intel Byte Buffer Parameters

Command Code:

Value:   0x00011001

Input parameters:

Parameter 0 of the Store Rows command is a byte array in the following format:

 Field  Data type  Values
 Header length  4-byte signed integer   20 
 Offset to database version  4-byte signed integer  offset from start of buffer
 Offset to database name   4-byte signed integer  offset from start of buffer
 Type of update  4-byte signed integer
  • 2 = update
  • 3 = transaction 
 Number of table rows  4-byte signed integer  
 Database version  Compressed unicode string  1.2
 Database name  Compressed unicode string  TWGServer

Expressed as a C++ structure, the input Parameter 0 data definition is:

struct {
        long    HeaderLength;     /* number of bytes before the string data*/
        long    off_dbVersion;    /* number of bytes from start of buffer  */
                                  /* to database version string            */
        long    off_dbName;       /* number of bytes from start of buffer  */
                                  /* to database name string               */
        long    UpdateType;       /* 2 = update  OR   3 = transaction      */
        long    nRows;            /* number of table rows                  */
        byte    DatabaseVersion[];/* as a compressed Unicode string        */
        byte    DatabaseName[];   /* as a compressed Unicode string        */
 }

Parameters 1 through n, where n is the number of table rows, describe the supplied column names and values as follows:

 Field  Data type  Values
 Offset to table token name  4-byte signed integer  offset from start of buffer 
 Number of columns  4-byte signed integer  
 Offset to start of column 1  4-byte signed integer  offset from start of buffer
 Offset to start of column 2  4-byte signed integer  offset from start of buffer
   etc.   ...  offset from start of buffer
 Offset to start of column n  4-byte signed integer  offset from start of buffer
 Table token name  Compressed unicode string  
 Offset to column 1 token name  4-byte signed integer  offset from start of buffer
 Column 1 data type  4-byte signed integer an array type value
 Offset to column 1 value  4-byte signed integer  offset from start of buffer
 Column 1 value  matches column data type  
 Column 1 token name  Compressed unicode string  
 Offset to column 2 token name  4-byte signed integer  offset from start of buffer
   etc...    

Expressed as a C++ structure, the input Parameter n data definition is:

struct {
     long    off_TableTokenName;       /* offset from the start of the buffer */
                                       /* to the table token name string      */
     long    nColumns;                 /* number of table columns             */
     long    off_Column[nColumns];     /* number of bytes from start of buffer*/
                                       /* to start of each column             */                          
     byte    TableTokenName[];         /* as a compressed Unicode string      */
     struct column_data data[nColumns];/* a variable-length structure         */
                                       /* for each column                     */
 };
 
 struct column_data {
     long    off_ColumnTokenName;      /* number of bytes from start of       */ 
                                       /* buffer to this column token name    */
     long    ColumnDataType;           /* coded data type of the column       */
     long    off_ColumnValue;          /* number of bytes from start of       */
                                       /* buffer to this column value         */
     byte    ColumnValue[];            /* sized according to data type        */
     byte    ColumnTokenName[];        /* as a compressed Unicode string      */
 }

Return codes:

 Code  Meaning
 1  Invalid command
 3  Exception
 4  SQL Error
 102  Parameter error

Output Parameters:

Output parameter 0  is a byte array in the following format:

 Field  Data type  Values
 Offset to database version  4-byte signed integer  offset from start of buffer
 Number of rows changed  4-byte signed integer Number of database table rows inserted and/or updated. If the store rows command was a transaction, this will contain 0 if any update or insert fails.
Number of commands processed  4-byte signed integer Number of insert and/or update commands successfully processed. If the store rows command was a transaction, this will contain the number of the last command issued before the failing command, however the successful updates were not committed to the database.
 Database version  Compressed unicode string  

Expressed as a C++ structure, the Output Parameter 0 data definition is:

struct {
        long    off_dbVersion;  /* number of bytes from start of buffer      */
                                /* to database version string                */
        long    nRowsChanged;   /* number of database rows inserted or       */
                                /* updated.                                  */
        long    nCommands;      /* number of commands processed successfully */
        byte    DatabaseVersion[];/* as a compressed Unicode string          */
 }