Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Поле БД как переменная
 
Вопрос по дазе данных.
В функции обычно явно указывают имя поля базы данных,
а как сделать так,
чтобы это имя поля была переменной, а в переменной я бы назвал это поле.

Просто есть механизм отбора значения из поля по условию, а вот выбор самого поля исходя из условия нету или есть?

Можно мне выйти из положения, если сделать базу данных, а в переменной сделать список на основе этой базы данных и выбор осуществлять по любым полям, а не по одному, как сейчаз имется в программе.
Страницы: Пред. 1 2 3
Ответы
 
Изначально мы собирали проект на диске D и путь выглядел типа D:\\..... Перекинули на другую машину, где вместо диска D - диск H. Открываем проект, и некоторые подсборки отсутствуют и ссылаются на диск D. Можно ли будет это в дальнейшем как нибудь поправить?
 
??? У Вас в путях присутствует ссылка на диск D? У Вас не абсолютные пути стоят случаем?
Смотрите: я когда делаю проект, я создаю отдельную папку например на диске D. И все детали и узлы, которые относятся к установке, лежат только в одной этой папке. Когда я вставляю фрагменты, у меня пути сразу относительные.
Например: Покупные изделия\Диск №1.grb
А ниже в свойствах фрагмента стоит абсолютный путь.
Иногда относительные пути выглядят сложнее: . .\Токосъём неподвижный\Сборочные единицы\Кольцо №1\Кольцо в сборе №1.grb
Такая ссылка говорит о том, что нужный мне файл лежит в другой подпапке папки моего проекта.
Ниже я скопировал из справки t-flex cad:
------------------------------------------------------------------------------------------------------------------
Ссылка может быть полная или относительная. Вторая строка отображает полный путь на жестком диске, по которому работает записанная ссылка. Относительная ссылка может быть записана вручную или автоматически в следующем виде:
. .\. .\папка\имя_файла.grb – в этом случае запись ведется относительно файла сборочного документа. Знак . .\ означает переход по папкам на один уровень выше относительно файла сборки.
<библиотека>имя_файла.grb – в этом случае ссылка использует библиотеку чертежей, подключенную к системе T-FLEX CAD.
------------------------------------------------------------------------------------------------------------------
Есть ещё команда Файл - Сборка - Перенести сборку. Как я понял, позволяет перенести сборку, даже если пути абсолютные есть. Правда, сам этой командой никогда не пользовался (не понадобилось).




 
Спасибо Большое Андрей за подробную информацию! :) Выходит относительные пути создаются автоматически и устанавливать их не надо.
 
Хотелось бы вернуться к теме форума. Использую оператор find() где поле базы данных имеет вид: имя таблицы.имя колонки. Если набираю все текстом, то работает, как только вместо имени базы данных ставлю переменную $БД - не работает. Может я какие то правила синтаксиса не выполняю?

 
Цитата
i.volk62 написал:
вместо имени базы данных ставлю переменную $БД - не работает
и не будет, сортировать можно переменные, базы данных - нет
 
Цитата
i.volk62 написал:
Хотелось бы вернуться к теме форума. Использую оператор find() где поле базы данных имеет вид: имя таблицы.имя колонки. Если набираю все текстом, то работает, как только вместо имени базы данных ставлю переменную $БД - не работает. Может я какие то правила синтаксиса не выполняю?
сложно сказать, будет ли такая синтаксическая конструкция работать вовсе, но так, на всякий случай: проверьте тип поля в БД, т.к. у Вас часть переменных - текстовые. Значит, и соответствующие поля БД так же должны быть текстовыми
Практика - критерий истины (с)
 
Цитата
i.volk62 написал:
Может я какие то правила синтаксиса не выполняю?
так работать не будет. в 15-й версии появилась возможность в поле "Имя базы данных" определить переменную (см. снимок)
tf_db_name.PNG (4.71 КБ)
T-FLEX CAD 17.1.6.0
 
Не
Цитата
Андрей Мальчук написал:
будет ли такая синтаксическая конструкция работать вовсе
$БД - это в операторе find() имя базы данных, а не переменная. Основы вычислительной техники церковно-приходской школы любого технического ВУЗа
 
Цитата
Шурик написал:
$БД - это в операторе find() имя базы данных, а не переменная. Основы вычислительной техники церковно-приходской школы любого технического ВУЗа
А кто мешает задать имя базы данных переменной? В функциях с внешними базами данных это возможно
 
Vite, точно) я с мобилы писал, так что возможности проверить не было, не обессудьте
Практика - критерий истины (с)
 
В общем подключил через внешнюю базу данных. Непонятно почему не сделают работу переменных с внутренними базами. Получилось что то вроде такого:


 
Цитата
i.volk62 написал:
Непонятно почему не сделают работу переменных с внутренними базами.
Все там есть, просто нужно правильно учытывать-знать возможности. Ошибка была в том что имя БД было записано через переменную. А зачем? когда можно было всего то добавить условие отбора, если это одна БД.
А если для разных БД можно например отобрать значение Н для каждой серии и отобрать там " условие", и все это записать в одну переменуюю (или разбить на разные, а потом отобрать нужную переменную).

При отборе из БД когда ставите условие, так вот, "условие" - это может быть перечень условий отбора. например: find(BD.H, BD.Обознач==Obozn && BD.Seria==Seria). Смысл такой, и запись не сложнее вашей.
 
Цитата
Денис Пользователь написал:
Все там есть, просто нужно правильно учытывать-знать возможности. Ошибка была в том что имя БД было записано через переменную. А зачем? когда можно было всего то добавить условие отбора, если это одна БД.
А если для разных БД можно например отобрать значение Н для каждой серии и отобрать там " условие", и все это записать в одну переменуюю (или разбить на разные, а потом отобрать нужную переменную).

При отборе из БД когда ставите условие, так вот, "условие" - это может быть перечень условий отбора. например: find( BD.H , BD.Обознач==Obozn && BD.Seria==Seria ). Смысл такой, и запись не сложнее вашей.
На самом деле там 4 серии и на каждую серию отдельная таблица, поэтому названия таблиц хотел забить переменной. А если все вместить в одну, то выбор обозначения будет слишком громоздким. Поэтому пришлось создать итоговую переменную с обозначением, и теперь все работает по 4 таблицам. Хотя сделать как выше предложил Vite было бы проще наверно, но хоть у меня и 15-я версия - повторить не удалось. Итого сделал как разумел со своей 2-х месячной практикой работы и в результате получилась следующая конструкция:

 
Цитата
i.volk62 написал:
Хотя сделать как выше предложил Vite было бы проще наверно, но хоть у меня и 15-я версия - повторить не удалось.
использование переменного имени БД решает задачу зависимых списков. но к сожалению, данный метод, корректно работает только в табличном представлении (имеется ввиду обновление списка по умолчанию).
T-FLEX CAD 17.1.6.0
Страницы: Пред. 1 2 3