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


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

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

Можно мне выйти из положения, если сделать базу данных, а в переменной сделать список на основе этой базы данных и выбор осуществлять по любым полям, а не по одному, как сейчаз имется в программе.
 
Любая функция отбора значений из баз имеет аргументы. Разумеется, этими аргументами могут бать переменные.
Семь раз отмерь - один раз образмерь!
 
Давайте лучше на примере так будет мне понятнее.

Из вашего справочника взял этот пример,
rec ( BASE.F1 > 10 && BASE.F2 < 5 )

допустим в базе BASE есть поля F1, F2, F3

а вот что мне надо сделать

rec ( BASE. вот тут должно быть поле F3 как переменная > 10 && BASE.F2 < 5 ) как это сделать?

$X="F3" // если подставить туда эту переменную то не работает
 
Уважаемые сотрудники компании T-flex, давайте решать эту проблему. Может новую тему создать, чтобы видно было.
 
afitoid, похоже Ваша проблема в том, что Вы не учитываете тип переменных. $X - всегда текстовая переменная, к такой переменной отношения >,<, и.т.п. не работают! Преобразуйте текстовую переменную в вещественную - всё заработает!
Семь раз отмерь - один раз образмерь!
 
Спасибо за совет, я об этом думал, что тип переменных разный, но как-то не подумал что можно преобразовать, сейчаз попробую....
 
Попробовал так


X=F3 //редактор при этом хочет создать переменную F3

IT=rec ( BASE. X > 10 && BASE.F2 < 5 ) //не работает


Напоминаю в базе три поля F1, F2, F3, а X эта переменная по которой я выбираю поле.

Есть функция ATOF только как ее применить ума не приложу, хотя пробовал и ничего не получалось, наверно не так что-то делал.
 
afitoid, не знаю, есть ли у Вас мануал - похоже что нет... Попытаюсь помочь...
1.)Функция REC(условие)- "Получить номер записи внутренней базы данных.
условие - выражение, принимающее значение истина или ложь. Выражение может содержать в качестве операндов обращения к полям базы данных."
2.)FREC(arg1, arg2, arg3,arg4) - тоже возвращает НОМЕР записи, удовлетворяющий условиям!
3.)VAL(номер_записи, поле_базы_данных) - "Получить значение из внутренней базы данных по номеру
записи.
номер_записи - любое арифметическое выражение,
значением которого является целое число.
поле_базы_данных - это обращение к полю."
4.) Чтобы получить ЗНАЧЕНИЕ из внутренней базы данных, надо воспользоваться функцией FIND(поле_базы_данных, условие_1, условие_2, ...)
Перечитайте внимательно о функциях обращения к полям баз данных и всё будет OK!
Семь раз отмерь - один раз образмерь!
 
Давайте раccмотрим функцию Find.

FIND(поле_базы_данных, условие_1, условие_2, ...)

условие_1 // задаю явно

условие_2 // задаю явно

поле_базы_данных // я знаю какая база, а какое поле не знаю, я хочу задать поле в переменной, и переменную подставить туда, вот тока как это сделать?

А насчет того потенциала есть у меня или нет - это дело наживное. Я T-Flex очень люблю и он просто незаменим для конструтора, тем более для технолога.
 
"А насчет того потенциала есть у меня или нет - это дело наживное." Это точно, afitoid! Только я написал "Мануал", имея в виду "Руководство", а совсем не Ваш потенциал.
"вот тока как это сделать?"- хороший вопрос! Попробуйте воспользоваться вставкой переменной через контекстное меню (правая кнопка мыши, "вставить переменную", выбор из списка). И еще совет. В "Руководстве" по-моему не очень качественно описан синтаксис команд работы с базами, да и сам перечень команд дополняется от версии к версии. Поэтому, откройте, например, файл "Винты" или какой либо еще из библиотеки 3D, поставляемой с версией FLEX. Посмотрите таблицу параметров и вам многое станет понятнее. Желаю успехов!
Семь раз отмерь - один раз образмерь!
 
Справочник надо кому-то дорабатывать, дополнять его примерами, в этом я согласен...

Эх придумал бы кто-нибудь МОНИТОР-КУЛЬМАН с ручкой, без клавиатуры и мышки, тыкай ручкой по командам да проектируй, дело быстрее бы пошло.
 
Если тема еще актуальна предлагаю такой вариант.
А если создать несколько переменных, в которые значения записываются в каждую из конкретного поля БД, а уже из этих переменных по условию выдбирать нужную?
 
Я еще эту проблему не решил Pavelp, твой вариант я сейчаз обмозгую, попробую применить. База не такая уж большая, поэтому очень возможно ее превратить в кучу переменных....
 
Не буду себе голову ломать, если функции отбора из внутренних баз данных val, find, frec, rec работают тока с заданными полями, то пускай оно так и будет, ведь прям дословно так и написано в help.
 
Я такой подход частенько использую, и не только с разными полями, но и с разными внутреннимиБД при разработке фрагментов металлопроката. Работает неплохо.
 
Можете выслать примерчик с фрагментами, хочу поучиться, да и думаю скоро моя новая работа с алюминиевыми конструкциями будет связана, а там как раз эта тема.
 
Отправил.
 
Благодаря примеру у меня наконец-то все получилось, СПАСИБО!
 
Цитата
afitoid пишет:

В функции обычно явно указывают имя поля базы данных,
а как сделать так,
чтобы это имя поля была переменной, а в переменной я бы назвал это поле.
Прошелся по старым темам, нашел вопрос на который есть простой ответ.
Нужно использовать функции отбора из внешней базы данных типа dbf или mdb. Там в условиях отбора можно использовать переменные для любых параметров. Т.е. можно выбирать по переменной саму базу данных, таблицу, поле и конечно условие отбора.
Изменено: Diso - 14.08.2008 18:05:12
 
Подскажите уважаемые! При составлении внутренней базы данных материалов ЛДСП нужно связать поле наименование "Бук Бавария" в базе данных с материалом текстуры (предварительно закинутой туда) и так для каждого наименования, как это сделать ? Пытался подставить логическое условие (или) в переменную, однако примеров многочисленного выбора так и не нашел. Так как все-таки связать два поля без логического (или) что бы не "растягивать" список выбора в выражении. И еще вопрос, как использовать разные 3d фрагменты в переменных в качестве выбора. Пример: построил корпус мебельный, привязал опору кухонную и расставил оставшиеся три массивом по точкам, в свойствах закладки "Операции" можно сделать замену, однако мне нужна эта кнопка в форме диалога. :applanse:
Изменено: Александр Конорев - 07.02.2010 19:48:40
Страницы: 1 2 3 След.