| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Есть таблица Foxpro, из которой нужно экспортировать данные в Navision. 
		
		
		
		
		
		
		
	Подключаюсь через Provider=VFPOLEDB. Текстовые данные считываются без проблем, но, как только дело доходит до Decimal, то вылетает ошибка: "Этот тип не поддержтвается C/SIDE... Пробовал варианты: 1. MyValue := DbfRecords.Fields.Item('FieldName').Value; 2. MyString := FORMAT(DbfRecords.Fields.Item('FieldName').Value) 3. EVALUATE(MyValue,FORMAT(DbfRecords.Fields.Item('FieldName').Value)); где: MyValue - Decimal MyString - Text DbfRecords - Automation - 'Microsoft ActiveX Data Objects 2.8 Library'.Recordset Везде одна и та же ошибка. Буду благодарен за помощь. Спасибо.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			прямо в запросе перегоняй число в строку... с датами лучше тоже также поступать
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	YEP! тел. (905) 561-94-00  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Запрос у меня следующий (названия полей изменены): 
		
		
		
		
		
		
		
	DbfRecords.Open('SELECT TextField, DecimalField, DateField FROM FoxProFile ORDER BY DateField'); Как сделать запрос? Если можно пример.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А если выгрузить сначала в excel, а потом в Nav?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Выведите поля DecimalField, DateField (не для все выборки, а для парочки первых) в сообщении на экран и поссмотрите как они отображаются.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Нав не распознает поле типа decimal и boolean, к сожалению не знаю фокспрошонго диалекта SQL, для SQL сервера запрос будет выглядеть как: 
		
		
		
		
		
		
		
	DbfRecords.Open('SELECT TextField, cast(DecimalField as money), DateField FROM FoxProFile ORDER BY DateField');  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Пришлось экспортировать через Excel. 
		
		
		
		
		
		
		
	Но это, все-таки, обходной и неправильный путь. Если у кого-то возникнут идеи, буду благодарен.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Нашел (не без вашей помощи) следующее решение: 
		
		
		
		
		
		
		
	DbfRecords.Open('SELECT TextField, CAST(DecimalField AS VARCHAR(12)) DecimalField, FROM FoxProFile ORDER BY DateField'); Потом делаю преобразовывание: EVALUATE(MyValue, CONVERTSTR(FORMAT(DbfRecords.Fields.Item('DecimalField').Value),'.',',')); CONVERTSTR здесь нужен, так как после CAST десятичный сепаратор получается в виде точки, которую нужно преобразовать в запятую. Всем спасибо.  | 
| 
	
 |