Страница 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