![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование типа в 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]А как приводишь ?