Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1176705003
проходил мимо решил заглянуть
2007-04-16 10:30
2007.05.06
Insert и DBGrid


2-1176788211
Ega23
2007-04-17 09:36
2007.05.06
PlaySound - просветите


15-1176133542
TUser
2007-04-09 19:45
2007.05.06
Microsoft назвала слабое место Windows Vista


3-1171441590
Монг
2007-02-14 11:26
2007.05.06
Компонет cxGrid


3-1171881112
EvChul
2007-02-19 13:31
2007.05.06
Как узнать о завершении асинхронной операции.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский