RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

SQL как понят под SQLite (sortof)

TYPES

sql-statement ::= TYPES [ Имя типа ][, Имя типа ][,Имя типа ][, ...] ; select-stmt
select-stmt ::= См. SELECT

Используйте ключевое слово TYPES перед оператором SELECT, чтобы предоставить поставщику ADO.NET SQLite список типов данных возвращения, чтобы ожидать от последующего оператора SELECT.

Это языковое расширение (иначе hack) SQLite определенно для провайдера данных ADO.NET. Это псевдозаявление, только поставщик ADO.NET понимает его.

Фон

Из-за нетипизированного характера SQLITE, есть определенные виды запросов, для которых поставщик ADO.NET не может определить надлежащий тип возвращаемых данных. Скалярные и агрегатные функции создают конкретную проблему, потому что нет никакого требования для данной скалярной или агрегатной функции, чтобы возвратить какой-то конкретный тип данных. На самом деле скалярные функции могли теоретически возвратить различный тип данных для каждой строки или колонки в запросе, это совершенно законно с точки зрения SQLITE.

Так как ADO.NET разработан вокруг типизированной системы, это ключевое слово выручает поставщика в случаях, где тип возвращения не может быть легко определен.

Эта команда должна использоваться вместе с оператором SELECT. Это работает только когда ключевое слово TYPES и его значение (значения) передаются наряду с оператором SELECT как единственный блок, разделеный точкой с запятой.

Примеры

TYPES [bigint], [int], [mediumint], [smallint], [tinyint];
SELECT 1, 2, 3, 4;

Вышеупомянутый запрос возвратил бы колонки как типы System.Int64, System.Int32, System.Int32, System.Int16 и System.Byte соответственно.

TYPES [bigint], [int], , [tinyint];
SELECT 1, 2, 3, 4;

В этом примере только у колонок 1, 2 и 4 была бы явная типизация. Тип данных колонки 3 передан системой и обнаружен нормально.

TYPES real;
SELECT SUM(Cost) FROM [Products];

Вышеупомянутый запрос явно говорит поставщику, что агрегатная функция SUM возвращает System.Double.

Примечания

  • Вы не можете использовать параметры в TYPES.
  • TYPES должно немедленно сопровождаться оператором SELECT.
  • Законно передать многократные TYPES и операторы SELECT в команде мультизапроса.
  • Можно приложить типы данных в кавычках "" или скобках [] (или ``).