| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Соответствие типов X++ и MS SQL/Oracle
			 
			
			Здравствуйте! 
		
		
		
		
		
		
		
	Не смог найти как получить соответствие типов X++ (перечисление Types) типам MS SQL/Oracle. Заранее благодарю за помощь!  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А в книжке Шашкова/Еременко или в Inside Microsoft Dynamics AX чего не посмотреть?
		 
		
		
		
		
		
		
			
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Меня интересует класс, который это делает при отправке DDL запросов на создание таблиц к БД.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Может это поможет?  
		
		
		
		
		
		
			![]() Код: Select * From SqlSystemVariables 
				__________________ 
		
		
		
		
	Zhirenkov Vitaly  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Естественно искать таблицу надо в БД... В АОТ её нету... (для 3-ки по крайней мере) 
		
		
		
		
		
		
			По этой же причине и не найдёте вы такого класса. За это отвечает ядро. 
				__________________ 
		
		
		
		
	Zhirenkov Vitaly  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну, информацию из этой таблицы посмотреть не сложно 
		
		
		
		
		
		
			
		
		
		
		
	Администрирование\Запросы\Информация о БД Но я там что-то не нашел соответствия типов  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#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). | |
| 
			
			 | 
		#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  | 
| 
	
 | 
| 
			
			 | 
		#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/  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Даже интересно, а как вам удалось добавить в таблицу поле типа Int64?  
		
		
		
		
		
		
			 
		
				__________________ 
		
		
		
		
	Zhirenkov Vitaly  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Здесь именно соответствие между базовыми типами (Аксапты или просто базовыми типами, как тут правильно с точки зрения терминологии - затрудняюсь ответить  
		
		
		
		
		
		
			  ) и соответсвующими им типами MS SQL/Oracle. Используются они именно для генерации DDL при работе ядра с БД.То что в аксапте есть и другие типы - ни для кого не секрет.   Просто в DDL они либо не используются, либо прибодятся к "более базовому" типу.
		
				__________________ 
		
		
		
		
	Zhirenkov Vitaly  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Дык это базовый тип для DAX4 от него RecId происходит и еще куча всего, так он перекручивается в SQL в тип bigint
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от ZVV
			 
 
			Здесь именно соответствие между базовыми типами (Аксапты или просто базовыми типами, как тут правильно с точки зрения терминологии - затрудняюсь ответить  
		
	  ) и соответсвующими им типами MS SQL/Oracle. Используются они именно для генерации DDL при работе ядра с БД.То что в аксапте есть и другие типы - ни для кого не секрет.   Просто в DDL они либо не используются, либо прибодятся к "более базовому" типу.1. сначала по EDT определяется базовый тип 2. далее базовый тип преобразуется в стандартный тип "Стандарта SQL", который и отправляется на сервер (SQL или Oracle) 3. А вот уже сервер самостоятельо интерпретирует типы "Стандарта SQL" в свои собственные! 
				__________________ 
		
		
		
		
	  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Я же сразу оговорился, что говорю про третью (3) версию. Там recid это обычный Int.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Zhirenkov Vitaly  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Открыл для интереса 4-ку и посмотрел: там в этой таблице больше нет соответствий типов вообще.  
		
		
		
		
		
		
			![]() Видимо в 4-ке это перенесли полностью в ядро, если не добавили другой таблицы. Ковыряться искать - лень, извините. ![]() Цитата: 
	
		
			Сдаецца мне там все по другому: 
1. сначала по EDT определяется базовый тип 2. далее базовый тип преобразуется в стандартный тип "Стандарта SQL", который и отправляется на сервер (SQL или Oracle) 3. А вот уже сервер самостоятельо интерпретирует типы "Стандарта SQL" в свои собственные! Нее, в концепции Аксапты наверняка всё это решает ядро. 
				__________________ 
		
		
		
		
		
			Zhirenkov Vitaly Последний раз редактировалось ZVV; 07.04.2008 в 16:16.  | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от ZVV
			 
 
			Открыл для интереса 4-ку и посмотрел: там в этой таблице больше нет соответствий типов вообще.  
		
	![]() Видимо в 4-ке это перенесли полностью в ядро, если не добавили другой таблицы. Ковыряться искать - лень, извините. ![]() Думаю, что п.2 и 3. делается в ядре. Как вы себе представляете "сервер БД, решающий самостоятельно, какой тип использовать"? Нее, в концепции Аксапты наверняка всё это решает ядро. Поэтому таки п.3. на SQL сервере отрабатывается ![]() зы: мот в написнии стандарта ошибся а в целом все именно так 
				__________________ 
		
		
		
		
	  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Извините, логику не прослеживаю? 
		
		
		
		
		
		
			При чём здесь ODBC? Во-первых, ODBC и SQL Server - это не одно и то же. А стандарт то они поддерживают, но это не значит, что они за вас будут переписывать ваши запросы... Не буду говорить про 4-ку, я там во многом ещё не разбирался, возможно они там и унифицировали все используемые типи, но в тройке разница между используемыми типами в оракле и скл имеется, и задана она явно для каждой базы, как я уже показал выше. Думаю, что в 4-ке это соответсвие просто зашили где-то в ядре. Более того, я думаю, п.3 "сервер самостоятельо интерпретирует ..." наверняка вообще отсутствует. Запрос DDL формирует непосредственно ядро. 
				__________________ 
		
		
		
		
	Zhirenkov Vitaly  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не знаю может я и не прав, но в 4-ке мне не удалось получить SQL лог при создании таблицы, похоже DDL запросы не логируются, а на сервере логируются "в родном" виде...
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/  | 
| 
	
 |