Форум: "Базы";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];
ВнизПреобразование типа в SQL запросе... Найти похожие ветки
← →
Conder (2003-03-05 16:51) [0]Имеется
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 кмньте в меня линком
← →
Johnmen (2003-03-05 16:54) [1]А как приводишь ?
← →
Conder (2003-03-05 17:49) [2]Дак пробовал по разному...
Cast упорно не работает... Кричит я таких функциев не знаю.
Напрашиваеться мысля что этот Jet.SQL как говорит "недоколыхалы" до полной совмести с ANSI-92...
Варианты qqq as varchar(150) тоже не проходят
← →
sniknik (2003-03-05 17:59) [3]а чего хочеш? ограничить строку можно функцией Left(выражение, длинна) но поле в гриде все одно не ограничится тк. выражение длинна как для строки длинной 254 (ограничивай в гриде или в таблице/запросе у field size выставляй.).
хелп по jet sql ищи на машине с установленным полным офисом 2000/ХР зовется JETSQL40.CHM.
← →
Conder (2003-03-05 18:27) [4]А т попробуй крутнуть такой запрос...
результат - нельзя даже сузить... Суть в том что если поле от создания в 50 символов то и вгриде оно будет на 50.. у тут лепит за 1500 и как с этим бороться?
← →
BlackTiger (2003-03-05 20:26) [5]А поле можно объявить (в в дизайнере) и как variant, а не string.
И колонке в гриде прописать ширину.
А можно и Calculated-поле вставить в датасет.
Можешь использовать простой Trim() от Left"a), но скорее всего можешь потерять данные.
Кстати, длина поля-разультата складывается из максимальных длин составляющих.
← →
Conder (2003-03-06 11:35) [6]Тут з дизайнером загвоздочка возникла... У меня в один и тот же DbGrid подставляются разные данные... т.е. колво столбцов является переменным и организ. в рантайме
← →
sniknik (2003-03-06 12:52) [7]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 + пустая строка.
← →
JibSkeart (2003-03-06 13:08) [8]Ну дык а Convert сли использовать ?
← →
BlackTiger (2003-03-06 13:19) [9]>Ну дык а Convert сли использовать ?
Да нет у джета ни Convert ни Cast, там есть только Бейсиковские функции Left/Right/Trim/Mid (можно на конце ставить "$" тогда результат всегда будет String), CInt/CDate/CDouble (и их аналоги, возвращающие Variant - CVInt,CVDate,CVDouble). Ну и конечно же Format().
2sniknik
Да, насчет "сложения длин" может и по-горячился. А может и нет - что будет, если результат слияния строк >255 знаков?
← →
sniknik (2003-03-06 13:36) [10]BlackTiger (06.03.03 13:19)
>Да, насчет "сложения длин" может и по-горячился. А может и нет - что будет, если результат слияния строк >255 знаков?
MEMO небось :-)) (обрезало по границе, не получилось МЕМО :-(()
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c