RunSQL

> [HTML Version](trunsql.html)

**Синтаксис**

````
procedure RunSQL(AQuery: string; AType: TM\_TableSQLType);

````
**Описание**

Выполняет пользовательский SQL-запрос AQuery и выводит в таблицу результат этого запроса. Тип отобращения результата AType имеет тип [TM\_TableSQLType](tm_tablesqltype.md).

Важно\! На десктоп клиентах в таблице нельзя отобразить более 8192 строк. В web-клиентах таблица не может содержать более 2048 ячеек.

**Пример 1 :** из БД будет сделана выборка всей таблицы с именем \`my\_table\` и эта выборка отобразится в таблице "Table1". В первой строке таблицы будут выведены названия столбцов.** **

````
var  
  aQuery: string;  
begin  
  // формируем запрос к БД на выборку всех данных из таблицы \`my\_table\`  
  aQuery := 'SELECT \* FROM \`my\_table\`';  
  // выполнить запрос и заполнить таблицу результатом выполнения  
  Table1.RunSQL(aQuery, tsAll);  
end.

````


**Пример 2 :** то же самое, но у таблицы заполнятся все строки кроме первой. Это позволит сохранить заголовок таблицы неизменным. 

````
var  
  aQuery: string;  
begin  
  aQuery := 'SELECT \* FROM \`my\_table\`;';  
  Table1.RunSQL(aQuery, tsSaveFixRow);  
end.

````


**Пример 3 :** иногда нужно сделать выборку так, чтобы названия колонок были на русском языке, а в БД они обычно названы по английски. В таком случае можно выполнить замену имен прямо в запросе.

````
var  
  aQuery: string;  
begin  
  aQuery := 'SELECT \`col1\` as \`Столбец 1\`, \`col2\` as \`Столбец 2\` FROM \`my\_table\`;';  
  Table1.RunSQL(aQuery, tsAll);  
end.
````