Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Преобразование типа в SQL запросе... [D5, D6, D7, Access]


Conder ©   (2003-03-05 16:51:00) 

Имеется
Select (C.Vendor+" "+C.CPUName+" "+C.Freq+" "+C.Package) as qqq, P.Inp_pr, C.Addit from CPU C, Price P
Where C.kod=P.kod

В результате выборки поле qqq получается неограниченной длины ...
приведение типа qqq as varchar(150) выдает ошибку. Работаю через ADO провайдер Microsoft.Jet.OLEDB.4.0
З.Ы. Мож у кого то есть справочник по Jet.SQL кмньте в меня линком


sniknik   (2003-03-06 13:36:00) [1]

BlackTiger (06.03.03 13:19)
>Да, насчет "сложения длин" может и по-горячился. А может и нет - что будет, если результат слияния строк >255 знаков?

MEMO небось :-)) (обрезало по границе, не получилось МЕМО :-(()


BlackTiger   (2003-03-06 13:19:00) [2]

>Ну дык а Convert сли использовать ?

Да нет у джета ни Convert ни Cast, там есть только Бейсиковские функции Left/Right/Trim/Mid (можно на конце ставить "$" тогда результат всегда будет String), CInt/CDate/CDouble (и их аналоги, возвращающие Variant - CVInt,CVDate,CVDouble). Ну и конечно же Format().

2sniknik
Да, насчет "сложения длин" может и по-горячился. А может и нет - что будет, если результат слияния строк >255 знаков?


JibSkeart   (2003-03-06 13:08:00) [3]

Ну дык а Convert сли использовать ?


sniknik   (2003-03-06 12:52:00) [4]

Conder (06.03.03 11:35)
не проблема, делай в рантайме (примерно)

ADODataSet.Open; //связаный с гридом
for i:= 0 to DBGrid.Columns.Count-1 do
if DBGrid.Columns[i].Width > 1000 then DBGrid.Columns[i].Width:= 200;

примерно так подобрать только значения.

а про SQL гдето читал что это не средство форматирования (правда), им ничего не добьешся.

BlackTiger (05.03.03 20:26)
> Кстати, длина поля-разультата складывается из максимальных длин составляющих.
не знаю у меня почемуто при любом вычислении со строкой вертает результат 255 дл. (проверил, раньше 254 ошибся). сам посмотри в сформированом FieldDefs после запроса. даже просто при Field + "", поле длинной 10 + пустая строка.



Conder   (2003-03-06 11:35:00) [5]

Тут з дизайнером загвоздочка возникла... У меня в один и тот же DbGrid подставляются разные данные... т.е. колво столбцов является переменным и организ. в рантайме


BlackTiger   (2003-03-05 20:26:00) [6]

А поле можно объявить (в в дизайнере) и как variant, а не string.
И колонке в гриде прописать ширину.

А можно и Calculated-поле вставить в датасет.

Можешь использовать простой Trim()от Left"a), но скорее всего можешь потерять данные.

Кстати, длина поля-разультата складывается из максимальных длин составляющих.


Conder   (2003-03-05 18:27:00) [7]

А т попробуй крутнуть такой запрос...
результат - нельзя даже сузить... Суть в том что если поле от создания в 50 символов то и вгриде оно будет на 50.. у тут лепит за 1500 и как с этим бороться?


sniknik   (2003-03-05 17:59:00) [8]

а чего хочеш? ограничить строку можно функцией Left(выражение, длинна) но поле в гриде все одно не ограничится тк. выражение длинна как для строки длинной 254 (ограничивай в гриде или в таблице/запросе у field size выставляй.).

хелп по jet sql ищи на машине с установленным полным офисом 2000/ХР зовется JETSQL40.CHM.


Conder   (2003-03-05 17:49:00) [9]

Дак пробовал по разному...
Cast упорно не работает... Кричит я таких функциев не знаю.
Напрашиваеться мысля что этот Jet.SQL как говорит "недоколыхалы" до полной совмести с ANSI-92...
Варианты qqq as varchar(150) тоже не проходят


Johnmen   (2003-03-05 16:54:00) [10]

А как приводишь ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо