Главная страница
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.019 c
15-1176182477
vajo
2007-04-10 09:21
2007.05.06
Samsung представил двойника Renault Koleos


15-1176018916
Йцукен
2007-04-08 11:55
2007.05.06
схождение Благодатного Огня


15-1176264301
Slider007
2007-04-11 08:05
2007.05.06
С днем рождения ! 10 апреля


1-1173442190
Kolan
2007-03-09 15:09
2007.05.06
Большой шрифт портит форму. Что делать?


2-1176295679
Ezorcist
2007-04-11 16:47
2007.05.06
Отреагировать на ошибку 10061 TClientSocket-a