powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание DBF через ODBC: размерность полей
4 сообщений из 4, страница 1 из 1
Создание DBF через ODBC: размерность полей
    #32503538
Задача:
Создается таблица DBF (через ODBC) посылкой SQL-запроса "CREATE TABLE ...". Типы полей, указываемые в запросе, разные: TEXT, LONG, DOUBLE.

Вопрос:
Как для полей LONG, DOUBLE указать размерность? Для DOUBLE нужно указать и число знаков после запятой.
...
Рейтинг: 0 / 0
Создание DBF через ODBC: размерность полей
    #32504566
Господа специалисты по SQL, ну помогите, плиз.
Почему не проходит в SQL-запросе CREATE TABLE указание точности: NUMERIC(5) или FLOAT(3) ?
...
Рейтинг: 0 / 0
Создание DBF через ODBC: размерность полей
    #32504631
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну потому что драйвер такой.
Не поддерживает указание размера для числовых полей.

И даже честно рассказывает об этом функцией SQLGetTypeInfo().
...
Рейтинг: 0 / 0
Создание DBF через ODBC: размерность полей
    #32504655
rst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо пользуетесь DBASE IV драйвером

>
dBASE Data Types
The following table shows how dBASE data types are mapped to ODBC SQL data types. Note that not all ODBC SQL data types are supported.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
dBASE  ODBC
CHAR SQL_VARCHAR 
DATE SQL_DATE 
FLOAT [ 1 ] SQL_DOUBLE 
LOGICAL SQL_BIT 
MEMO SQL_LONGVARCHAR 
NUMERIC (BCD) SQL_DOUBLE 
OLEOBJECT [ 1 ] SQL_LONGBINARY 


[1] Valid only for dBASE version 5.x

Precision in dBASE III allows numbers with up to two-digit exponents and in dBASE IV numbers with up to three-digit exponents. Because numbers are stored as text, they are converted to numbers. If the number to convert does not fit in a field, unexplained results may occur.

While dBASE allows a precision and a scale to be specified with a NUMERIC data type, it is not supported by the ODBC dBASE driver. The ODBC dBASE driver always returns a precision of 15 and a scale of 0 for a NUMERIC data type.

A column created with the Numeric data type using the ODBC dBASE driver maps to the SQL_DOUBLE ODBC data type. Thus the data in this column is subject to rounding. This behavior is not the same as that of the NUMERIC data type in dBASE (type N), which is Binary Coded Decimal (BCD).
>

У меня какой тип поля не выбирай при create table LONG ли DOUBLE - это всегда будет DECIMAL(20,5).
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание DBF через ODBC: размерность полей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]