v8. "ВЫРАЗИТЬ" в запросе... (есть-ли возможность преобразовать строку в число)? #138201


#0 by XpyM
Разьве эта функция не может привести строку к числу????selectfrom catalog.nomenklaturaНе переводит :( Есть какая-то возможность преобразовать строку в число?
#1 by alxarz
selectfrom catalog.nomenklaturaа так?
#2 by XpyM
Несовместимые типы "ВЫРАЗИТЬ" <<?>>cast("1" as number(15,3))
#3 by alxarz
а чего у тебя кавычки внутри запроса делают? ты либо двойные ставь, либо _'_ используй, сам посмотри уж что подходит больше...
#4 by cathode
Не видите за деревьями леса, уважаемый. Здесь не в кавычках дело. Можете попробовать на полях справочника. Тип "Строка" не может быть преобразован средствами ЯЗЫКА ЗАПРОСОВ V80 к типу "Число". Нет, правильнее сказать, что нет документированного способа это сделать. Может быть, кто-то знает недокументированный?
#5 by alxarz
уподобляюсь автору топика... Спрашивается, зачем такого рода преобразования?
#6 by Pilcrow
Оператор ВЫРАЗИТЬ не преобразует, а приводит данные к одному типу, если эти данные имеют составной тип. Подробности - в документации.
#7 by XpyM
Это от того, уважаемый, что работали вы только с 1С.И Вам неведомо, что последующая обработка запроса происходитпо-разному и с разной скоростью в зависимости от типа поля.Мне-же надо работать с итоговым запросом в ADO.Net.А в запросе я просто привел для примера как строку "1" перевестив чило 1. В реальной жизни вместо строки "1" существует подстрокаиз справочника. Но зачем усложнять вопрос? Это я уже понял. Но меня интересует тогда есть-ли какая-нибудьвстроенная функция (пусть и не особо документированная ;), котораяпереведет строку в число...
#8 by alxarz
Вопрос усложнять как раз и не нужно, нужно ставить его корректно, а не заужать и направлять размышления по поводу, может быть, в заведомо ложное русло. Если вас интересует быстродействие обращения через АДО, так и надо формулировать вопрос. А раз последующая обработка запроса происходит по-разному, что мешает выгрузить в ТЗ и работать с ней заведомо приведя поля к нужному типу? А раз уж вы такой знаток адо,что мешает перевести нужный запрос из 1с в sql и обращаться напрямую к базе? вот уж где будет быстродействие...
#9 by XpyM
Странно, что, как Вы считаете, обработка результата запроса в 1С,через его методы и т.д. будет быстрее, чем приведение типа средствами SQL.Вопрос не в том, что мне мешает сделать так, или иначе. Все, что Выпредлагаете, я могу сделать.Но! Я спрашивал именно про приведение типов и именно в запросе.А по-поводу усложнять вопрос или заужать его - в я задачу поставилименно конкретно - конкретней некуда -"как привести строку "1" в чило 1 средствами языка 1С-запросов?".
#10 by alxarz
вот именно sql и будет быстрее, что я и имел ввиду...я писал не коНкретно, а коРректно... чуть внимательнее читать.В про ADO ничего не было сказано, поэтому я и задал вопрос "Зачем такого рода преобразования?" подразумевая, что это нужно в 1С.Почему нельзя из 1с выложить данные в какую-то таблицу внешней бд, и работать с ней? тем более если это не вызывает трудностей...
#11 by XpyM
Объясняю, потому, что процесс выкладки данных во внешнюю БД займет достаточное время.И вообще, практически всегда, когда идет обращение к процедурам (даже к хранимым)этот запрос будет работать медленнее, чем навороченный многоэтажный запрос чистого SQL.Повторюсь, что с вариантами решения проблем с запросами в 1С я знаком и понимаю, как их обойти.Но вопрос не задавался с целью узнать как можно обойти 1С, а как это сделать это в _1С_ при помощи одного запроса.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С