Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.06;
Скачать: CL | DM;

Вниз

преобразование типов данных в SQL   Найти похожие ветки 

 
Егоров А.Н.   (2007-02-15 08:54) [0]

Кто знает помогите, пожалуйста. Не получается нормально выполнить запрос (Delphi 7, ADO, провайдер VFPOLEDB v.8, базы FoxPro 3.x):

select
vM.code_i,
(trim(vT.name_i)+" ("+trim(str(vM.code_i))+")") as name_i
from v_docm vM
left outer join vtree as vT on vM.code_i=vT.kod_i

где  vT.name_i – строка;
vM.code_i, vT.kod_i – целое число.

В итоге запрос выполняется, но возвращается:
например при vT.name_i=”ЧП Иванов А.С.” и vM.code_i=10

name_i= ЧП Иванов А.С. (        10),

т.е. не срабатывает второй trim перед str(vM.code_i) и в скобках остаются пробелы перед  code_i  (всего 10 символов). Как мне избавиться от этих пробелов.

Cast(vM.code_i as char) выдаем ошибку, наверное из-за версии VFPOLEDB.


 
sniknik ©   (2007-02-15 09:14) [1]

а замени ка trim на ltrim (trim тут както "не смотрится", пробелы возможны только слева)

на работу доеду попробую что "не срабатывает"...


 
ЮЮ ©   (2007-02-15 09:22) [2]

Cast(vM.code_i as char(length))


 
Егоров А.Н.   (2007-02-15 10:30) [3]

Спасибо за совет. ltrim сработало. Хотя какая разница, спереди сжимат пробелы или с обеих сторон. Конечно ltrim более правильно, но с точки зрения срабатывания функции непонятно.


 
sniknik ©   (2007-02-15 11:07) [4]

> ltrim сработало.
хм..? совет был дан только с точки зрения что
> ... ltrim более правильно
сам бы сразу поставил так (зачем какието действия там где они никогда не понадобятся?)
но, действительно, проверил, разница в поведении есть... trim не обрабатывает результат функции, а вот данные поля пожалуйста... может такая своего рода оптимизация? типа захочешь написать неоптимально и не получится? :) (шутка. было бы похоже на правду если бы других "ляпов" в драйвере VFP не было... а так, забыли скорее всего)

ЮЮ ©   (15.02.07 09:22) [2]
> Cast(vM.code_i as char(length))
тогда уж
Cast(vM.code_i as varchar(maxlength))
и trim выкинуть вообще.


 
Егоров А.Н.   (2007-02-15 11:50) [5]

Нет. Ни Cast(vM.code_i as varchar(maxlength)), ни Cast(vM.code_i as char(length)) не обрабатываются. Вылетает ошибка.


 
sniknik ©   (2007-02-15 12:07) [6]

> Вылетает ошибка.
окно открой, выпусти, а то она у тебя вылетает вылетает, а вылететь не может... как вылетит, так все нормализуется...
:)


 
ЮЮ ©   (2007-02-15 12:14) [7]

Из [5] не чувствуется, что вместо  length и maxlength были подставлены нужные константы



Страницы: 1 вся ветка

Текущий архив: 2007.05.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
15-1175826761
Slider007
2007-04-06 06:32
2007.05.06
С днем рождения ! 6 апреля


15-1176187069
Calibr
2007-04-10 10:37
2007.05.06
Температура ЦПУ


2-1176528655
Гость у мастеров
2007-04-14 09:30
2007.05.06
ActiveX. начало


8-1156315403
Maxim new
2006-08-23 10:43
2007.05.06
Ассоциация файлов


15-1175495841
xayam
2007-04-02 10:37
2007.05.06
Построение дерева исходного кода