Backend-Specific Elements¶
Certain child elements of <Table> apply only to specific SQL backends. Include only the elements that match your target database.
MSSQLBulkCopy (Microsoft SQL Server)¶
The <MSSQLBulkCopy> element controls how data is copied from Btrieve to Microsoft SQL Server using the bulk copy API. If this element is present inside a <Table>, data copying is enabled for that table.
<Table Name="Person" Schema="dbo">
<MSSQLBulkCopy BulkCopyByRowCount="500" LockTable="y"/>
<!-- ... -->
</Table>
Attributes¶
Attribute |
Required |
Default |
Description |
|---|---|---|---|
|
No |
|
Number of rows per batch during bulk copy. The driver adjusts this based on the total record count (up to 5000) if not explicitly set. Do not specify both |
|
No |
(none) |
Kilobytes per batch during bulk copy. When set, this takes precedence over |
|
No |
|
Whether to lock the entire table on the server during data copy.
|
OracleTableSpaces (Oracle)¶
The <OracleTableSpaces> element specifies which Oracle tablespaces to use when creating the table, indexes, and variable-record storage.
<Table Name="Person" Schema="">
<OracleTableSpaces Table="DATA_TS" Index="INDEX_TS" VarRecs="BLOB_TS"/>
<!-- ... -->
</Table>
Attributes¶
Attribute |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
(none) |
Tablespace name for table data storage. |
|
Yes |
(none) |
Tablespace name for index storage. |
|
No |
(default) |
Tablespace name for variable-length record data. The tail end of variable-length Btrieve records is stored as BLOBs; this specifies which tablespace holds that data. |
OracleTableStorage (Oracle)¶
The <OracleTableStorage> element configures Oracle storage parameters for the table’s physical allocation.
<Table Name="Person" Schema="">
<OracleTableSpaces Table="DATA_TS" Index="INDEX_TS"/>
<OracleTableStorage PercentFree="10" PercentUsed="85"
Initial="8" Next="1"/>
<!-- ... -->
</Table>
Attributes¶
Attribute |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
(none) |
Oracle |
|
Yes |
(none) |
Oracle |
|
Yes |
(none) |
Initial extent size (in Oracle allocation units) for the table. |
|
Yes |
(none) |
Size of subsequent extents (in Oracle allocation units) when the table needs more space. |
Backend Element Placement¶
When using DTD validation, the backend-specific elements must appear in the correct position within the <Table> element. The DTD defines the content model as:
For MSSQL:
MSSQLBulkCopymust appear beforeFieldsandIndices.For Oracle:
OracleTableSpacesandOracleTableStoragemust appear beforeFieldsandIndices.
Only include the elements for your target backend. Do not mix MSSQL and Oracle elements in the same <Table>.
Note
In practice, the code does not strictly enforce this ordering. However, following the DTD order ensures the XML validates correctly if DTD validation is enabled.