Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Отрезать строку MEMO


Автор: Softaz 18.7.2007, 20:41
Есть запрос
Код

SELECT   Data.Cod_Ent, Data.Enterprises, Rubrica_Ref.Rubrica, SubRubrica_Ref.SubRubrica, 
                SubSubRubrica_Ref.SubSubRubrica, 
                Region.Region + ' ' + Region.Short_Reg + ', ' + Rajon.Rajon + ' ' + Rajon.Short_Rajon + ', ' + NP.Short_NP + '. ' + NP.NP
                 + ', ' + Street.Short_Street + '. ' + Street.Street + ', строение ' + Building.Build AS addrr, Ext_Info.ExtInfo
FROM      (((((Region INNER JOIN
                (Rajon INNER JOIN
                ((Building INNER JOIN
                (Street INNER JOIN
                NP ON Street.Cod_NP = NP.Cod_NP) ON Building.Cod_Street = Street.Cod_Street) INNER JOIN
                Data ON Building.Cod_Adres = Data.Cod_Adres) ON Rajon.Cod_Rajon = NP.Cod_Rajon) ON 
                Region.Cod_Region = Rajon.Cod_Region) INNER JOIN
                Rubrica_Ref ON Data.Cod_Rubrica = Rubrica_Ref.Cod_Rubrica) INNER JOIN
                SubRubrica_Ref ON Data.Cod_SubRubrica = SubRubrica_Ref.Cod_SubRubrica) INNER JOIN
                SubSubRubrica_Ref ON Data.Cod_SubSubRubrica = SubSubRubrica_Ref.Cod_SubSubRubrica) LEFT OUTER JOIN
                Ext_Info ON Data.Cod_Ent = Ext_Info.Cod_Ent)
WHERE   (Data.Enterprises LIKE '%' + ? + '%') AND (NP.NP LIKE '%' + ? + '%') AND (Street.Street LIKE '%' + ? + '%') AND 
                (Building.Build LIKE '%' + ? + '%') AND (Rajon.Rajon LIKE '%' + ? + '%')
ORDER BY Data.Enterprises


Данные в колонке Ext_Info.ExtInfo MEMO. БД - ACCESS.
Запрос поступает из кода ASP.NET 2.0.
Дело в том, что надо только первые символы из ExtInfo (~250 букв).

Так вот, если применить обрезание Left(ExtInfo, 250) то результатом является какая-то крякозябра.
Как соорудить запрос?
Заранее спасибо.

Автор: mr.DUDA 19.7.2007, 09:26
Текст лежит в какой-то кодировке, скорее всего UTF-8 или Unicode, поэтому LEFT его калечит. Хотя могу и ошибаться, лучше на sql.ru спросить в разделе по Access.

Автор: Softaz 22.7.2007, 10:27
Цитата(mr.DUDA @  19.7.2007,  09:26 Найти цитируемый пост)
Текст лежит в какой-то кодировке, скорее всего UTF-8 или Unicode, поэтому LEFT его калечит

Это я проходил - там из-за двухбайтовости символов иногда последняя буква режется. А в этом случае возвращается вообще один символ.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)