Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
Есть нечто похожее на это в MSSQL

? Transform(1000,'999 999 999 999.99') &&синтаксис VFP

Результат = строка.
8 апр 05, 14:07    [1452190]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Glory
Member

Откуда:
Сообщений: 104751
Отображение результатов - это дело клиентского приложения
8 апр 05, 14:16    [1452263]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
Согласен. Ну так а на вопрос то ответьте? Нету чтоли такой? :-)
8 апр 05, 14:17    [1452265]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Рекомендации по оформлению сообщений в форуме п.3
8 апр 05, 14:18    [1452286]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Glory
Member

Откуда:
Сообщений: 104751
Петров Андрей
Согласен. Ну так а на вопрос то ответьте? Нету чтоли такой? :-)

Если сервер не отображает данные то накой ему такие функции ?
8 апр 05, 14:21    [1452302]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
Согласен. Сейчас опишу более подробно а то действительно непонятно...

Необходимо сумму в некой валюте представить в читаемом для оператора виде. Те разделить порядки (тысячи миллионы и тд) пробелами. Пример:

1 000.00 = Transform(1000,'999 999 999.99')

Теперь вопрос. Есть ли такая функция (transform) в MSSQL

То что ее можно вытащить на клиента понятно. Но тогда где же здесь оптимизация запроса... Так что этот вариант не проходит говорю заранее...
8 апр 05, 14:24    [1452326]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Glory
Member

Откуда:
Сообщений: 104751
Есть ли такая функция (transform) в MSSQL
Нету
8 апр 05, 14:27    [1452350]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Glory
Member

Откуда:
Сообщений: 104751
Но тогда где же здесь оптимизация запроса
Странные у вас однако понятия об оптимизации запросов
8 апр 05, 14:28    [1452359]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
ChA
Member

Откуда: Москва
Сообщений: 11319
Петров Андрей
Но тогда где же здесь оптимизация запроса...
Какая-такая оптимизация ? Сервер-то тут причем ? На клиенте используйте regional setting, или форматируйте, как заблагорассудится...
8 апр 05, 14:28    [1452361]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
Glory
Нету


Все. Спасибо.
8 апр 05, 14:28    [1452364]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
автор
Какая-такая оптимизация ? Сервер-то тут причем ? На клиенте используйте regional setting, или форматируйте, как заблагорассудится...


Не мне Вам объяснять что такое оптимизация. И делается она исключительно на сервере чем он собственно и занимается. И перевод чисел в строки тоже должен быть отнесен к ней...

Ну не вопрос. Рассмотрим мой пример. Те Вы предлагаете сделать мне повторный Select на клиенте по каждой строке сделав преобразование? Тогда это двойная работа извините...

Те

=sqlexec(m.h,'select ... from ...','query') && Данные с сервера через ODBC
select *, transform(sum,'999 999.99') as sum2 from query

Получаем двойной обход таблицы...

Или Вы предлагаете сделать при выборе строки преобразование? А если пользователь много много раз будет по ним ходить - не получим ли мы более медленного клиента?

В общем это все флуд. Нет так нет...
8 апр 05, 14:34    [1452412]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Glory
Member

Откуда:
Сообщений: 104751
Получаем двойной обход таблицы...
А в Grid с заданным форматом отображения вывести слабо ?
Или в BROWSE ?
8 апр 05, 14:36    [1452425]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
ChA
Member

Откуда: Москва
Сообщений: 11319
Петров Андрей
Что я предлагаю, я уже написал :) Когда Вы обрабатываете на клиенте результат, то он определенного типа, если Вы выводите его в грид, то в нем практически всегда есть возможность форматирования поля по маске.

P.S. А если Вам надо просуммировать эти данные, то Вы из строки будете переводить обратно в число ?

P.P.S. А если клиенты из разных стран, то как Вы будете форматировать им результат ?
8 апр 05, 14:42    [1452469]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
автор
А в Grid с заданным форматом отображения вывести слабо ?
Или в BROWSE ?


Хех это как раз двойной обход и получается. Потому что грид когда отображается вызывает эти функции.
8 апр 05, 14:43    [1452475]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
автор
P.S. А если Вам надо просуммировать эти данные, то Вы из строки будете переводить обратно в число ?

P.P.S. А если клиенты из разных стран, то как Вы будете форматировать им результат ?


Если надо суммировать я "выберу" это поле 2 раза.

А если клиенты из разных стран я все равно постараюсь сделать 1 Select.
8 апр 05, 14:45    [1452493]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
Суммирем. Обидно другое.
Что никто не сказал что при выборке данных эта функция (при наличии в Select Where будет срабатывать еще большее количество раз) странно что Вы его не привели.

Или это не так? Сначала выбор данных а потом применение на них функции (ну не хотите Transform например LTrim)
8 апр 05, 14:49    [1452518]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
2 Петров Андрей
Вот уже битых два часа вам втолковывают, что не барское (серверное) это дело форматированием отображения в клиенте заниматься, а клиентское. У сервера и других задач хватает.
8 апр 05, 14:49    [1452525]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
автор
Вот уже битых два часа вам втолковывают, что не барское (серверное) это дело форматированием отображения в клиенте заниматься, а клиентское. У сервера и других задач хватает.


Не 2 а 1 :-)

У клиента этих задач поверьте еще больше бывает. Это субъективное мнение а не аргумент...
8 апр 05, 14:52    [1452544]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
ChA
Member

Откуда: Москва
Сообщений: 11319
Не знаю, как Вам донести простую мысль, SQL-сервер предназначен только для выполнения запросов, но не для форматирования результатов этих запросов. Что программа-клиент, получив результирующий набор, в зависимости от требований данного клиента-человека, может вывести данные в любом, только этому пользователю нужном формате.

P.S. А если Вам будут нужно выводить диаграммы, так Вы сервер заставите их формировать и выдавать в виде картинки на клиента ?
8 апр 05, 14:55    [1452572]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
автор
У клиента этих задач поверьте еще больше бывает. Это субъективное мнение а не аргумент...

Ню-ню. А потом будеи удивляться, что серверу перестает хватать процессорного времени.
автор
? Transform(1000,'999 999 999 999.99') &&синтаксис VFP

Сдается мне, что Transform - клиентская функция ...
8 апр 05, 14:55    [1452573]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62908
Петров Андрей
У клиента этих задач поверьте еще больше бывает. Это субъективное мнение а не аргумент...


И где ты на клиенте собираешься эти данные использовать?
MS Access - это клиент и сервер в одном флаконе
8 апр 05, 14:57    [1452592]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1251
автор
Ню-ню. А потом будеи удивляться, что серверу перестает хватать процессорного времени.


Задачи бывают разные не надо перегибать палку.

автор
Сдается мне, что Transform - клиентская функция ...


В данном конкретном случае? Или Вам сдается что такой нет на сервере?

Ну ладно еще пофлудю пока время есть...

У меня пример с Grid не пройдет потому что использую не его а список с несколькими калонками. И там можно только вставить именно функцию а не формат. Как говорится почувствуйте разницу.
8 апр 05, 15:06    [1452656]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62908
Петров Андрей
У меня пример с Grid не пройдет потому что использую не его а список с несколькими калонками. И там можно только вставить именно функцию а не формат. Как говорится почувствуйте разницу.

Чтобы почувствовать надо видеть как ты вставляешь.
8 апр 05, 15:09    [1452680]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Glory
Member

Откуда:
Сообщений: 104751
Петров Андрей
автор
А в Grid с заданным форматом отображения вывести слабо ?
Или в BROWSE ?


Хех это как раз двойной обход и получается. Потому что грид когда отображается вызывает эти функции.

Какой двойной обход?? Вы думаете Grid/Browse форматирует отображеие сразу для всех записей ?
8 апр 05, 15:14    [1452710]     Ответить | Цитировать Сообщить модератору
 Re: Число в строку по маске  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
автор
У меня пример с Grid не пройдет потому что использую не его а список с несколькими калонками. И там можно только вставить именно функцию а не формат. Как говорится почувствуйте разницу.

Вы не путаете серверные функции с клиентскими?
8 апр 05, 15:14    [1452712]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить