<document>
<SystemTables>
<Server>SQLServer</Server>
<SystemQueries>
<DatabaseNames>
<Statement><![CDATA[SELECT NAME AS CATALOG_NAME
FROM master..sysdatabases ]]></Statement>
</DatabaseNames>
<TableNames>
<Statement><![CDATA[SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES]]></Statement>
</TableNames>
<TableFields>
<Statement><![CDATA[SELECT COLUMN_NAME, 
  DATA_TYPE, 
  CHARACTER_MAXIMUM_LENGTH AS DATA_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '{$TableName}']]></Statement>
</TableFields>
</SystemQueries>
<TypeMappings>
<Type>
<Name>BIGINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>BINARY</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>BIT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>CHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>DATETIME</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>DECIMAL</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>FLOAT</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>IMAGE</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>INT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>MONEY</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>NCHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>NTEXT</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>NUMERIC</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>NVARCHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>REAL</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>SMALLDATETIME</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>SMALLINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>SMALLMONEY</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>SQL_VARIANT</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>TEXT</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>TIMESTAMP</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>TINYINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>UNIQUEIDENTIFIER</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>VARBINARY</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>VARCHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
</TypeMappings>
</SystemTables>
<SystemTables>
<Server>Oracle</Server>
<SystemQueries>
<DatabaseNames/>
<TableNames>
<Statement><![CDATA[SELECT TABLE_NAME
FROM USER_TABLES]]></Statement>
</TableNames>
<TableFields>
<Statement><![CDATA[SELECT COLUMN_NAME, 
  DATA_TYPE, 
  DATA_LENGTH,
  DATA_PRECISION,
  DATA_SCALE
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = '{$TableName}']]></Statement>
</TableFields>
</SystemQueries>
<TypeMappings>
<Type>
<Name>BINARY_INTEGER</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>BFILE</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>BLOB</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>CHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>CLOC</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>DATE</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>DECIMAL</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>FLOAT</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>INT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>LONG</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>LONG RAW</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>MLSLABEL</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>NCHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>NCLOC</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>NUMBER</Name>
<SubType>
<Field>
<Name>DATA_SCALE</Name>
<CheckValue>0</CheckValue>
<SQL>INTEGER</SQL>
</Field>
</SubType>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>NVARCHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>NVARCHAR2</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>PLS_INTEGER</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>RAW</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>ROWID</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>TIMESTAMP</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>UROWID</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>VARCHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>VARCHAR2</Name>
<SQL>VARCHAR</SQL>
</Type>
</TypeMappings>
</SystemTables>
<SystemTables>
<Server>MySQL</Server>
<SystemQueries>
<DatabaseNames>
<Fields>
<Field>
<Name>CATALOG_NAME</Name>
<Source>FIELD</Source>
<SourceField>Database</SourceField>
</Field>
</Fields>
<Statement><![CDATA[SHOW DATABASES]]></Statement>
</DatabaseNames>
<TableNames>
<Fields>
<Field>
<Name>TABLE_NAME</Name>
<Source>FIELD</Source>
<SourceField>NAME</SourceField>
</Field>
</Fields>
<Statement><![CDATA[SHOW TABLE STATUS]]></Statement>
</TableNames>
<TableFields>
<Fields>
<Field>
<Name>COLUMN_NAME</Name>
<Source>FIELD</Source>
<SourceField>FIELD</SourceField>
</Field>
<Field>
<Name>DATA_TYPE</Name>
<Source>DATA_TYPE</Source>
<SourceField>TYPE</SourceField>
</Field>
<Field>
<Name>DATA_LENGTH</Name>
<Source>DATA_LENGTH</Source>
<SourceField>TYPE</SourceField>
</Field>
</Fields>
<Statement><![CDATA[SHOW COLUMNS FROM {$TableName}]]></Statement>
</TableFields>
</SystemQueries>
<TypeMappings>
<Type>
<Name>BIGINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>BLOB</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>CHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>DATE</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>DATETIME</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>DECIMAL</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>DOUBLE</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>ENUM</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>FLOAT</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>INT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>INT UNISGNED</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>LONGBLOB</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>LONGTEXT</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>MEDIUMBLOB</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>MEDIUMINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>MEDIUMINT UNSIGNED</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>MEDIUMTEXT</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>SET</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>SMALLINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>SMALLINT UNSIGNED</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>TEXT</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>TIME</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>TIMESTAMP</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>TINYINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>TINYINT UNSIGNED</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>TINYTEXT</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>VARCHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>YEAR</Name>
<SQL>INTEGER</SQL>
</Type>
</TypeMappings>
</SystemTables>
<SystemTables>
<Server>Interbase</Server>
<SystemQueries>
<DatabaseNames>
<Statement/>
</DatabaseNames>
<TableNames>
<Statement><![CDATA[SELECT RDB$RELATION_NAME AS TABLE_NAME
FROM RDB$RELATIONS
WHERE RDB$VIEW_BLR IS NULL 
  AND RDB$SYSTEM_FLAG = 0]]></Statement>
</TableNames>
<TableFields>
<Statement><![CDATA[SELECT R.RDB$FIELD_NAME AS COLUMN_NAME,
  F.RDB$FIELD_TYPE AS DATA_TYPE,
  F.RDB$FIELD_LENGTH AS DATA_LENGTH,
  F.RDB$FIELD_SCALE AS DATA_SCALE,
  RDB$FIELD_SUB_TYPE AS DATA_SUBTYPE,
  R.RDB$FIELD_POSITION AS POS
FROM RDB$RELATION_FIELDS R, RDB$FIELDS F
WHERE R.RDB$RELATION_NAME = '{$TableName}'
AND R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME
ORDER BY R.RDB$FIELD_POSITION]]></Statement>
</TableFields>
</SystemQueries>
<TypeMappings>
<Type>
<Name>7</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>8</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>9</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>10</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>11</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>12</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>13</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>27</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>14</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>15</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>35</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>37</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>261</Name>
<SubType>
<Field>
<Name>DATA_SUBTYPE</Name>
<CheckValue>1</CheckValue>
<SQL>MEMO</SQL>
</Field>
</SubType>
<SQL>BLOB</SQL>
</Type>
</TypeMappings>
</SystemTables>
<SystemTables>
<Server>PostgreSQL</Server>
<SystemQueries>
<DatabaseNames>
<Statement><![CDATA[SELECT DATNAME AS CATALOG_NAME
FROM PG_DATABASE]]></Statement>
</DatabaseNames>
<TableNames>
<Statement><![CDATA[SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA <> 'information_schema'
  AND TABLE_SCHEMA <> 'pg_catalog']]></Statement>
</TableNames>
<TableFields>
<Fields>
<Field>
<Name>COLUMN_NAME</Name>
<Source>FIELD</Source>
<SourceField>FIELD</SourceField>
</Field>
<Field>
<Name>DATA_TYPE</Name>
<Source>DATA_TYPE</Source>
<SourceField>TYPE</SourceField>
</Field>
<Field>
<Name>DATA_LENGTH</Name>
<Source>DATA_LENGTH</Source>
<SourceField>TYPE</SourceField>
</Field>
</Fields>
<Statement><![CDATA[SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH AS DATA_LENGTH 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA <> 'information_schema'
  AND TABLE_SCHEMA <> 'pg_catalog'
  AND TABLE_NAME = '{$TableName}'
ORDER BY ORDINAL_POSITION]]></Statement>
</TableFields>
</SystemQueries>
<TypeMappings>
<Type>
<Name>BIGINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>BLOB</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>CHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>DATE</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>DATETIME</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>DECIMAL</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>DOUBLE</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>ENUM</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>FLOAT</Name>
<SQL>FLOAT</SQL>
</Type>
<Type>
<Name>INT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>INT UNISGNED</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>LONGBLOB</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>LONGTEXT</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>MEDIUMBLOB</Name>
<SQL>BLOB</SQL>
</Type>
<Type>
<Name>MEDIUMINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>MEDIUMINT UNSIGNED</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>MEDIUMTEXT</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>SET</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>SMALLINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>SMALLINT UNSIGNED</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>TEXT</Name>
<SQL>MEMO</SQL>
</Type>
<Type>
<Name>TIME</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>TIMESTAMP</Name>
<SQL>DATE</SQL>
</Type>
<Type>
<Name>TINYINT</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>TINYINT UNSIGNED</Name>
<SQL>INTEGER</SQL>
</Type>
<Type>
<Name>TINYTEXT</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>VARCHAR</Name>
<SQL>VARCHAR</SQL>
</Type>
<Type>
<Name>YEAR</Name>
<SQL>INTEGER</SQL>
</Type>
</TypeMappings>
</SystemTables>
</document>
