Форум: "Базы";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
Внизпреобразование типов данных в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.047 c