07.04.2008, 12:38 | #1 |
Участник
|
Соответствие типов X++ и MS SQL/Oracle
Здравствуйте!
Не смог найти как получить соответствие типов X++ (перечисление Types) типам MS SQL/Oracle. Заранее благодарю за помощь! |
|
07.04.2008, 13:00 | #2 |
Участник
|
А в книжке Шашкова/Еременко или в Inside Microsoft Dynamics AX чего не посмотреть?
|
|
07.04.2008, 13:11 | #3 |
Участник
|
Меня интересует класс, который это делает при отправке DDL запросов на создание таблиц к БД.
|
|
07.04.2008, 13:18 | #4 |
MCITP
|
Может это поможет?
Код: Select * From SqlSystemVariables
__________________
Zhirenkov Vitaly |
|
07.04.2008, 13:25 | #5 |
MCITP
|
Естественно искать таблицу надо в БД... В АОТ её нету... (для 3-ки по крайней мере)
По этой же причине и не найдёте вы такого класса. За это отвечает ядро.
__________________
Zhirenkov Vitaly |
|
07.04.2008, 13:37 | #6 |
Участник
|
Ну, информацию из этой таблицы посмотреть не сложно
Администрирование\Запросы\Информация о БД Но я там что-то не нашел соответствия типов |
|
07.04.2008, 13:44 | #7 |
Участник
|
|
|
07.04.2008, 14:16 | #8 |
MCITP
|
2 mazzy: SqlSystemVariables != SqlDictionary
Таблица SqlSystemVariables в тройке не присутствует в АОТ вообще, даже в System Documentation. И в SQL Administration тоже... Увидеть данные из неё можно действительно только в форме Администрирование\Запросы\Информация о БД, как отметил Кашперук. При этом форма генерит "прямой" запрос к БД: X++: select parm, value, iparm from SqlSystemVariables order by value
__________________
Zhirenkov Vitaly |
|
|
За это сообщение автора поблагодарили: mazzy (1). |
07.04.2008, 14:20 | #9 |
MCITP
|
Вот, теперь по сути...
Цитата:
... при отправке DDL запросов на создание таблиц к БД.
Цитата:
Но я там что-то не нашел соответствия типов
X++: STR VARCHAR2(%u) INT NUMBER(10,0) REAL NUMBER(32,16) DATE DATE ENUM NUMBER(10,0) BLOB BLOB TEXT CLOB Цитата:
...соответствие типов X++ (перечисление Types) типам MS SQL/Oracle.
__________________
Zhirenkov Vitaly |
|
07.04.2008, 15:05 | #10 |
Пенсионер
|
Цитата:
Сообщение от ZVV
Вот, теперь по сути...
используются данные именно из этой таблице. Где-то в ядре. Класса "оупенсорс" какого-то, отвечающего за это дело нет. (По крайней мере я не нашёл) Вот часть данных из этой таблицы: X++: STR VARCHAR2(%u) INT NUMBER(10,0) REAL NUMBER(32,16) DATE DATE ENUM NUMBER(10,0) BLOB BLOB TEXT CLOB
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
07.04.2008, 15:13 | #11 |
MCITP
|
Даже интересно, а как вам удалось добавить в таблицу поле типа Int64?
__________________
Zhirenkov Vitaly |
|
07.04.2008, 15:21 | #12 |
MCITP
|
Здесь именно соответствие между базовыми типами (Аксапты или просто базовыми типами, как тут правильно с точки зрения терминологии - затрудняюсь ответить ) и соответсвующими им типами MS SQL/Oracle. Используются они именно для генерации DDL при работе ядра с БД.
То что в аксапте есть и другие типы - ни для кого не секрет. Просто в DDL они либо не используются, либо прибодятся к "более базовому" типу.
__________________
Zhirenkov Vitaly |
|
07.04.2008, 15:54 | #13 |
Пенсионер
|
Дык это базовый тип для DAX4 от него RecId происходит и еще куча всего, так он перекручивается в SQL в тип bigint
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
07.04.2008, 15:55 | #14 |
Участник
|
|
|
07.04.2008, 15:59 | #15 |
Пенсионер
|
Цитата:
Сообщение от ZVV
Здесь именно соответствие между базовыми типами (Аксапты или просто базовыми типами, как тут правильно с точки зрения терминологии - затрудняюсь ответить ) и соответсвующими им типами MS SQL/Oracle. Используются они именно для генерации DDL при работе ядра с БД.
То что в аксапте есть и другие типы - ни для кого не секрет. Просто в DDL они либо не используются, либо прибодятся к "более базовому" типу. 1. сначала по EDT определяется базовый тип 2. далее базовый тип преобразуется в стандартный тип "Стандарта SQL", который и отправляется на сервер (SQL или Oracle) 3. А вот уже сервер самостоятельо интерпретирует типы "Стандарта SQL" в свои собственные!
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
07.04.2008, 16:08 | #16 |
MCITP
|
Я же сразу оговорился, что говорю про третью (3) версию. Там recid это обычный Int.
__________________
Zhirenkov Vitaly |
|
07.04.2008, 16:13 | #17 |
MCITP
|
Открыл для интереса 4-ку и посмотрел: там в этой таблице больше нет соответствий типов вообще.
Видимо в 4-ке это перенесли полностью в ядро, если не добавили другой таблицы. Ковыряться искать - лень, извините. Цитата:
Сдаецца мне там все по другому:
1. сначала по EDT определяется базовый тип 2. далее базовый тип преобразуется в стандартный тип "Стандарта SQL", который и отправляется на сервер (SQL или Oracle) 3. А вот уже сервер самостоятельо интерпретирует типы "Стандарта SQL" в свои собственные! Нее, в концепции Аксапты наверняка всё это решает ядро.
__________________
Zhirenkov Vitaly Последний раз редактировалось ZVV; 07.04.2008 в 16:16. |
|
07.04.2008, 16:39 | #18 |
Пенсионер
|
Цитата:
Сообщение от ZVV
Открыл для интереса 4-ку и посмотрел: там в этой таблице больше нет соответствий типов вообще.
Видимо в 4-ке это перенесли полностью в ядро, если не добавили другой таблицы. Ковыряться искать - лень, извините. Думаю, что п.2 и 3. делается в ядре. Как вы себе представляете "сервер БД, решающий самостоятельно, какой тип использовать"? Нее, в концепции Аксапты наверняка всё это решает ядро. Поэтому таки п.3. на SQL сервере отрабатывается зы: мот в написнии стандарта ошибся а в целом все именно так
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
07.04.2008, 16:56 | #19 |
MCITP
|
Извините, логику не прослеживаю?
При чём здесь ODBC? Во-первых, ODBC и SQL Server - это не одно и то же. А стандарт то они поддерживают, но это не значит, что они за вас будут переписывать ваши запросы... Не буду говорить про 4-ку, я там во многом ещё не разбирался, возможно они там и унифицировали все используемые типи, но в тройке разница между используемыми типами в оракле и скл имеется, и задана она явно для каждой базы, как я уже показал выше. Думаю, что в 4-ке это соответсвие просто зашили где-то в ядре. Более того, я думаю, п.3 "сервер самостоятельо интерпретирует ..." наверняка вообще отсутствует. Запрос DDL формирует непосредственно ядро.
__________________
Zhirenkov Vitaly |
|
08.04.2008, 08:56 | #20 |
Пенсионер
|
Не знаю может я и не прав, но в 4-ке мне не удалось получить SQL лог при создании таблицы, похоже DDL запросы не логируются, а на сервере логируются "в родном" виде...
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|