Главная страница
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.122 c
10-1132575802
George_Debug
2005-11-21 15:23
2007.05.06
ADO+Excel


15-1176242262
SerJaNT
2007-04-11 01:57
2007.05.06
Палитра компонентов Delphi


2-1176392286
GL00m
2007-04-12 19:38
2007.05.06
Пресловутые PChar и DLL...


2-1176584879
Ezorcist
2007-04-15 01:07
2007.05.06
Как правильно вести лог событий работы программы?


2-1176716731
vegarulez
2007-04-16 13:45
2007.05.06
Подскажите, почему UpperCase, не хотит рускиие буквы делать Up?