Главная страница
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.014 c
15-1175977895
vasIZmax
2007-04-08 00:31
2007.05.06
Как правильно писать программу?!


15-1176007036
Просто Васёк
2007-04-08 08:37
2007.05.06
Христос Воскресе!


1-1173099044
Zeleniy
2007-03-05 15:50
2007.05.06
прозрачный RichEdit


2-1176903171
sword00
2007-04-18 17:32
2007.05.06
Нажать кнопку в окне другой программы


6-1162737990
Student2007
2006-11-05 17:46
2007.05.06
Удалённое отключение компьютеров...