Страница 6 из 14
					
				Глупые вопросы
				Добавлено: 10 Февраль 2017, 16:34
				 kreator
				seawolf писал(а):А экспортировать этот xml файл в какой-нибудь нормальный дизайнер (рисователь) схемы базы можно или это все может вращаться внутри clarion?
Куда, например?
Из словаря можно вызвать рисователь. Вернее так. В словаре есть встроенный рисователь.
 
			 
			
					
				Глупые вопросы
				Добавлено: 15 Февраль 2017, 0:05
				 Дед Пахом
				В отладчике есть возможность поменять шрифт (Setup|Options|Custom font), но выбор шрифта не сохраняется после закрытия отладчика. Искал во всяких INI, XML, в реестре, не нашёл где хранится шрифт, может кто знает? Если это вообще возможно.
			 
			
					
				Глупые вопросы
				Добавлено: 27 Апрель 2018, 16:45
				 vic7tar
				Дед Пахом писал(а): 15 Февраль 2017, 0:05В отладчике есть возможность поменять шрифт... 
 
А кто-нибудь победил эту ситуацию?
 
			 
			
					
				Глупые вопросы
				Добавлено: 10 Май 2018, 16:52
				 vic7tar
				Кому интересно, подсунул Cladb.exe из C8 - вроде бы все настройки сохраняются.
			 
			
					
				Глупые вопросы
				Добавлено: 04 Сентябрь 2018, 0:49
				 vic7tar
				Всем привет.
Кто-нибудь разъяснит, почему объявление
Код: Выделить всё
any_val   ulong(3000000000)          ! или что-то, большее 2147483647
вызывает ругательство (Expression must be constant)?
 
			 
			
					
				Глупые вопросы
				Добавлено: 04 Сентябрь 2018, 1:06
				 Дед Пахом
				vic7tar писал(а): 04 Сентябрь 2018, 0:49почему объявление
 
Наверное потому, что где-то в коде компилятора есть что-то вроде
Код: Выделить всё
if defval > 2147483647
  throw "Expression must be constant"
end
[/code]
 
			 
			
					
				Глупые вопросы
				Добавлено: 04 Сентябрь 2018, 5:27
				 Игорь Столяров
				vic7tar писал(а): 04 Сентябрь 2018, 0:49почему объявление
 
У меня другая версия: потому, что тип рабочих переменных компилятора для инициализации целочисленных значений: LONG.
А значит должно работать вот так:
Код: Выделить всё
any_val1     ulong(1500000000 + 1500000000)
any_val2     ulong(1000000000 * 3)
 
			 
			
					
				Глупые вопросы
				Добавлено: 04 Сентябрь 2018, 12:07
				 vic7tar
				Интересный поворот.
Т.е.:
Код: Выделить всё
any_val1     ulong(1500000000 + 1500000000)
any_val2     ulong(1000000000 * 3)
можно, и даже так можно:
Код: Выделить всё
any_val3     ulong(abs(1500000000 + 1500000000))
any_val4     ulong(1000000000 - 3)
а так нельзя:
 
 
			 
			
					
				Глупые вопросы
				Добавлено: 04 Сентябрь 2018, 12:52
				 Игорь Столяров
				vic7tar писал(а): 04 Сентябрь 2018, 12:07Интересный поворот.
 
На самом деле, вполне логичный и ожидаемый поворот-то … 

В общем случае, результат деления целого на целое - это вещественное число (тип данных REAL).
Поэтому попытка присвоения результата такой операции в ULONG - некорректна. 

 
			 
			
					
				Глупые вопросы
				Добавлено: 04 Сентябрь 2018, 16:03
				 vic7tar
				Игорь Столяров писал(а): 04 Сентябрь 2018, 12:52vic7tar писал(а): 04 Сентябрь 2018, 12:07Интересный поворот.
 
На самом деле, вполне логичный и ожидаемый поворот-то … 

В общем случае, результат деления целого на целое - это вещественное число (тип данных REAL).
Поэтому попытка присвоения результата такой операции в ULONG - некорректна. 

 
Это уже другой интересный поворот. Тогда это как работает?:
 
			 
			
					
				Глупые вопросы
				Добавлено: 04 Сентябрь 2018, 17:06
				 Игорь Столяров
				vic7tar писал(а): 04 Сентябрь 2018, 16:03Это уже другой интересный поворот.
 
Как я понимаю: здесь таже беда, что и с функцией Choose(), т.е. тип результата определяется выполняемой операцией.
Деление - всегда возвращает результат в REAL, поэтому присвоении результата в ULONG - запрещено.
Компилятор эту аксиому знает. 
Тип результата умножения зависит от типа данных аргументов, и срабатывает неявное преобразование типов данных.
Таких смешных примеров в Clarion с путаницей в неявных типах данных много, например:
Код: Выделить всё
  A# = 2  
  Message( Choose(A#,  10 / 3, 'арбуз'  )   )
 
			 
			
					
				Глупые вопросы
				Добавлено: 04 Сентябрь 2018, 18:19
				 vic7tar
				Игорь Столяров писал(а): 04 Сентябрь 2018, 17:06vic7tar писал(а): 04 Сентябрь 2018, 16:03Это уже другой интересный поворот.
 
Как я понимаю: здесь таже беда, что и с функцией Choose(), т.е. тип результата определяется выполняемой операцией.
Деление - всегда возвращает результат в REAL, поэтому присвоении результата в ULONG - запрещено.
Компилятор эту аксиому знает. 
Тип результата умножения зависит от типа данных аргументов, и срабатывает неявное преобразование типов данных.
Таких смешных примеров в Clarion с путаницей в неявных типах данных много, например:
Код: Выделить всё
  A# = 2  
  Message( Choose(A#,  10 / 3, Format(10 / 3,@n12.3)  )   )
 
Т.е. при всех арифм. операциях кроме деления неявное преобразование срабатывает, так я понял? Ну а с этим как быть?:
Добился нужного результата через задницу и не по правилам.
А что в примере с choose не так, ну выдает 3.33, а что должно быть? С 'арбузом' пример был вроде подходящий, ну и там возврат был по всем правилам.
 
			 
			
					
				Глупые вопросы
				Добавлено: 04 Сентябрь 2018, 18:30
				 Игорь Столяров
				vic7tar писал(а): 04 Сентябрь 2018, 18:19ну выдает 3.33, а что должно быть?
 
Согласен, здесь срабатывает обратное преобразование строки в число. Исправил на "арбуз". 

 
			 
			
					
				Глупые вопросы
				Добавлено: 06 Сентябрь 2018, 16:23
				 Vladimir
				Привет всем. Может быть кто-то сталкивался с такой ситуацией. Создаю в 6-ке стандартным шаблоном ADOprocess (Provider=VFPOLEDB.1 пробовал и Provider=MSDASQL.1. c VFP таблицей DBF). В схеме данных все однозначно, указываю Primary table of ADO... и все работает на ура!. Пробую то же самое в 10-ке - в схеме требует указать кроме Primary table of ADO еще и File(s) to process . Что за File(s) to process не понимаю, в хелпе об этом ни стова. Указываю и там и там одну и ту же таблицу (файл). В результате получаю Access violation. Причем если создать APP в 6-ке и открыть в 10-ке, то, естественно, все ок, Primary table есть, File(s) to process нет... куда смотреть не понимаю, но уж очень не айс параллельно в 2-х срЕдах одно и то же делать.
 
			 
			
					
				Глупые вопросы
				Добавлено: 06 Сентябрь 2018, 17:37
				 Игорь Столяров
				Давненько я не брал в руки шашек … в смысле не терзал ADO. 
Посмотрите, что у Вас выставлено в Defines Project в C63 и перенесите сие в проект С10.
В С10 через ... в общем неправильно иногда срабатывают шаблоны. 

Должно быть что-то вроде:
Код: Выделить всё
_COMLinkMode_
_COMDLLMode_=>off
_ADOLinkMode_
_ADODLLMode_=>off
_ADOMPRLinkMode_
_ADOMPRDLLMode_=>off
_SVDllMode_=>0
_SVLinkMode_=>1
_ABCDllMode_=>0
_ABCLinkMode_=>1