Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Как получить значение неограниченного поля? (число прочтений - 4236 )
Sky7003
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 27. Августа 2007
Как получить значение неограниченного поля?
27. Августа 2007 :: 07:13
Печать  
Формирую запрос на 1с++, ставлю поле неограниченной длинны на вывод. Выдаётся либо пустое поле, вместо текста, либо ошибка
"State 42000, native 306, message [Microsoft][ODBC SQL Server Driver][SQL Server]The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator."

Может надо какие-нибуть функции использовать для вывода таких полей?
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Как получить значение неограниченного поля?
Ответ #1 - 27. Августа 2007 :: 07:54
Печать  
Обрезай до 255 символов и приводи к типу Char, как вариант
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Sky7003
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 27. Августа 2007
Re: Как получить значение неограниченного поля?
Ответ #2 - 27. Августа 2007 :: 08:30
Печать  
пробовал, через cast(поле,числознаков)as char) ;туже ошибку выдаёт
The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator."
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как получить значение неограниченного поля?
Ответ #3 - 27. Августа 2007 :: 08:57
Печать  
Покажи запрос.
  
Наверх
 
IP записан
 
Sky7003
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 27. Августа 2007
Re: Как получить значение неограниченного поля?
Ответ #4 - 27. Августа 2007 :: 09:24
Печать  
|SELECT Журнал.DOCNO НомерДок
     | , Журнал.DATE_TIME_IDDOC ДатаВремяИдДок
     |      , Брэнды.DESCR Брэнд
     | , Заказ.sp37 Модель
     |      , Заказ.sp38 ДатаГарантии
     |      , Заказ.sp39 СерийныйНомер
     |      , Заказ.sp40 ВидРемонта
     |      , Заказ.sp41 Склад
     |      , Заказ.sp42 ФИО
     |      , Заказ.sp43 Телефон
     |      ,cast(left(Заказ.sp45,4)as char) нарушение
     |      , Заказ.sp46 Неисправность
     |      , Заказ.sp49 Сумма
     |, комплектНаим.descr Комплектация
     |      , Заказ.sp177 Адрес
     |      , Заказ.sp207 Цифра
     |      , Заказ.sp226 МестоПриобретения
     |      , Заказ.sp228 ДатаОплаты
     |      , Заказ.sp230 СуммаЗЧ      
     |      , Заказ.sp231 Дополнительно  -
     |FROM dh33 AS Заказ With (NOLOCK)
     |      INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON Заказ.IDDOC = Журнал.IDDOC
     | full outer JOIN dh54 AS комплект With (NOLOCK)  on комплект.sp56 =Заказ.IDDOC
     |left outer JOIN dt54 AS комплектстрока With (NOLOCK)  on комплектстрока.IDDOC =комплект.IDDOC
     | left outer JOIN sc16 AS комплектНаим With (NOLOCK)  on комплектНаим.ID =комплектстрока.sp55
     |full outer JOIN sc14 AS Брэнды With (NOLOCK) ON Заказ.sp36 = Брэнды.ID
     |WHERE (Заказ.IDDOC = :ИД)
     |";
ошибка такая
Argument data type text is invalid for argument 1 of left function.
  
Наверх
 
IP записан
 
Georgiy
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 09. Июля 2007
Re: Как получить значение неограниченного поля?
Ответ #5 - 27. Августа 2007 :: 10:47
Печать  
RTRIM(LTRIM(Переменная))
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Как получить значение неограниченного поля?
Ответ #6 - 27. Августа 2007 :: 11:16
Печать  
Цитата:
Выдаётся либо пустое поле, вместо текста...

Длинные поля должны быть вконце селект листа (последними в списке полей выборки). Ограничение толи ODBC толи MSSQL не помню точно.
  
Наверх
ICQ  
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как получить значение неограниченного поля?
Ответ #7 - 28. Августа 2007 :: 02:46
Печать  
DmitrO писал(а) 27. Августа 2007 :: 11:16:
Цитата:
Выдаётся либо пустое поле, вместо текста...

Длинные поля должны быть вконце селект листа (последними в списке полей выборки). Ограничение толи ODBC толи MSSQL не помню точно.


Это нужно в FAQ однозначно. Сам недавно столкнулся, поиском ничего не нашел.
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Как получить значение неограниченного поля?
Ответ #8 - 28. Августа 2007 :: 04:48
Печать  
Ну вообще говоря, эта ошибка разработчика хорошо может быть продетектена объектом ODBCRecordset. По моему мнению в этом случае он должен возбуждать исключение.
  
Наверх
ICQ  
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как получить значение неограниченного поля?
Ответ #9 - 28. Августа 2007 :: 06:45
Печать  
DmitrO писал(а) 28. Августа 2007 :: 04:48:
Ну вообще говоря, эта ошибка разработчика хорошо может быть продетектена объектом ODBCRecordset. По моему мнению в этом случае он должен возбуждать исключение.


Запрос выполняется, но по этому полю возвращает пустое значение, все остальные поля возвращает. Чтобы использовать GetLastError, он же должен ошибку выдать?  

Если поставить поле с бесконечной длиной в конец, значение запрос возвращает.
« Последняя редакция: 29. Августа 2007 :: 02:00 - vivm »  
Наверх
ICQ  
IP записан
 
Sky7003
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 27. Августа 2007
Re: Как получить значение неограниченного поля?
Ответ #10 - 28. Августа 2007 :: 08:48
Печать  
это конечно хорошо, но в том и загвостка, что бесконечное поле не одно а три, и делать 3 запроса, в которых бы каждое из этих полей стояло последним неправильно.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как получить значение неограниченного поля?
Ответ #11 - 28. Августа 2007 :: 09:44
Печать  
три этих поля могут быть в одном запросе, но в конце селект-листа
  

1&&2&&3
Наверх
 
IP записан
 
Sky7003
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 27. Августа 2007
Re: Как получить значение неограниченного поля?
Ответ #12 - 28. Августа 2007 :: 09:56
Печать  
Спасибо. всё работает
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать