private function BuildColumns(IConnection $Connection, $DatabaseName, $TableName)
{
$QueryBuilder = $Connection->QueryBuilder();
$QueryBuilder->Append('SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE TRUE ');
$QueryBuilder->AppendValue('AND `TABLE_SCHEMA` = # ', $DatabaseName);
$QueryBuilder->AppendValue('AND `TABLE_NAME` = # ', $TableName);
$QueryBuilder->AppendValue('ORDER BY `ORDINAL_POSITION`', $TableName);
$Columns = [];
foreach ($QueryBuilder->Build()->Execute()->FetchAll() as $ColumnRow) {
$Column = $this->BuildColumn($Connection, $ColumnRow);
$Columns[$Column->GetName()] = $Column;
}
return $Columns;
}