ТИПЫ ДАННЫХ ДОСТУПА MICROSOFT
В следующей таблице приведены типы данных Microsoft Access , типы данных, используемые для создания таблиц и ODBC SQL типы данных. Некоторые типы имеют ограничения, изложенные в следующей таблице.
Microsoft Access data type Data type (CREATE TABLE) ODBC SQL data type
~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
BIGBINARY[1] LONGBINARY SQL_LONGVARBINARY
BINARY BINARY SQL_BINARY
BIT BIT SQL_BIT
COUNTER COUNTER SQL_INTEGER
CURRENCY CURRENCY SQL_NUMERIC
DATE/TIME DATETIME SQL_TIMESTAMP
GUID GUID SQL_GUID
LONG BINARY LONGBINARY SQL_LONGVARBINARY
LONG TEXT LONGTEXT SQL_LONGVARCHAR[2]
MEMO LONGTEXT SQL_LONGVARCHAR[2]
NUMBER (FieldSize= SINGLE) SINGLE SQL_REAL
NUMBER (FieldSize= DOUBLE) DOUBLE SQL_DOUBLE
NUMBER (FieldSize= BYTE) UNSIGNED BYTE SQL_TINYINT
NUMBER (FieldSize= INTEGER) SHORT SQL_SMALLINT
NUMBER (FieldSize= LONG INTEGER) LONG SQL_INTEGER
NUMERIC NUMERIC SQL_NUMERIC
OLE LONGBINARY SQL_LONGVARBINARY
TEXT VARCHAR SQL_VARCHAR[1]
ARBINARY VARBINARY SQL_VARBINARY
[1] Access 4.0 applications only. Max 4000 B. Behaviour similar to LONGBINARY.
[2] ANSI applications only.
[3] Unicode and Access 4.0 applications only.
Примечание: SQLGetTypeInfo
возвращает ODBC
типов данных. Он не вернет все типы данных Microsoft Access , если более одного типа Microsoft Access сопоставлены с одним и тем же типом данных ODBC
SQL
. Все преобразования в Приложение D Справочника по программированию ODBC поддерживаются для типов данных SQL
, перечисленных в предыдущей таблице.
Ограничения на типы данных Microsoft Access
BINARY**
, **VARBINARY**
и **VARCHAR
: создание столбца BINARY
, VARBINARY
или VARCHAR
нулевой или неопределенной длины фактически возвращает 510 -байтный столбец.
BYTE
: Даже если поле Microsoft Access NUMBER
с FieldSize
, равным BYTE
, не подписано, при использовании драйвера Microsoft Access в поле можно вставить отрицательное число ,
CHAR**
, **LONGVARCHAR**
и **VARCHAR
: строковый литерал может содержать любой символ ANSI (1-255 десятичных). Используйте две последовательные одинарные кавычки (''
) для представления одной одинарной кавычки ('
). Процедуры должны использоваться для передачи символьных данных при использовании любого специального символа в столбце символьного типа данных.
DATE
: Значения даты должны быть разделены в соответствии с каноническим форматом даты ODBC или разделены ограничителем даты и времени (#
). В противном случае Microsoft Access будет рассматривать значение как арифметическое выражение и не будет выдавать предупреждение или ошибку.
- Например, дата "
March 5, 1996
" должна быть представлена как {d '1996-03-05'}
или #03/05/1996#
; в противном случае, если отправлено только 03/05/1993
, Microsoft Access оценит это как 3 ÷ 5 ÷ 1996
. Это значение округляется до целого числа 0
, и поскольку нулевой день отображается на 1899-12-31
, это используемая дата.
- Символ канала (
|
) нельзя использовать в значении даты, даже если он заключен в кавычки.
GUID
: тип данных ограничен Microsoft Access 4.0.
NUMERIC
: тип данных ограничен Microsoft Access 4.0.
(дополнительная информация на Источник )
Ограничения для типов данных ODBC Desktop Driver
Драйверы базы данных Microsoft ODBC для настольных ПК накладывают следующие ограничения на типы данных:
- Все типы данных Сбой преобразования типов может привести к тому, что для соответствующего столбца будет установлено значение
NULL
.
BINARY
Создание столбца BINARY
нулевой длины фактически возвращает 255-байтовый столбец BINARY
.
DATE
Тип данных DATE
нельзя преобразовать в другой тип данных (или сам по себе) с помощью функции CONVERT
.
DECIMAL
(точное число) ** Не поддерживается.
Floating-Point Data Types
Количество десятичных знаков в числе с плавающей запятой может быть ограничено форматом числа, установленным в International разделе Панель управления Windows .
NUMERIC
Поддерживает максимальную точность и шкалу 28.
TIMESTAMP
Тип данных TIMESTAMP
не может быть преобразован в саму себя с помощью функции CONVERT.
TINYINT
: значения TINYINT всегда без знака.
Zero-Length Strings
: при использовании dBASE, Microsoft Excel, Paradox или Textdriver при вставке строки нулевой длины в столбец вместо нее фактически вставляется NULL
.
( Источник )
Дополнительная информация:
Небольшое дополнение Эрик :
На самом деле вы можете использовать тип данных Decimal
в запросах CREATE TABLE
. Однако для этого необходимо, чтобы ваш оператор выполнялся либо с помощью ADO, либо в базе данных, для которой был установлен синтаксис, совместимый с ANSI-92.
Чтобы установить для вашей базы данных синтаксис, совместимый с ANSI-92:
Перейдите в Файл -> Параметры. Откройте вкладку Дизайнеры объектов . Перейдите к Query Designer и в разделе Совместимый синтаксис SQL Server (ANSI 92) установите флажок Эта база данных . Теперь вы можете просто выполнить запрос. Обратите внимание, что это влияет на все запросы в базе данных и влияет на запросы различными способами.
Чтобы выполнить запрос с помощью ADO:
В VBA Immediate Window выполните следующую строку:
CurrentProject.Connection.Execute "CREATE TABLE NONGAME (ITEM_NUM CHAR(4) NOT NULL PRIMARY KEY, PRICE DECIMAL(6,2));"
Конечно, вы можете выполнять более сложные запросы, используя ADO.