|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.04.2011, 07:10 | #1 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 151
|
MSSQL длинные строки
Прошу подсказать, если кто знает, как правильно работать с длинными строками в MS SQL Server 2008.
Есть поле типа nvarchar(max), в которых хранятся очень длинные строки (более 30 тыс. символов). Необходимо эти строки разбить на значения ("сплиттануть"). Для этого написал ф-ю split, которая производит это разделение. Но работает она только со строками у которых длина не превышает 4000 символов. Т.е., функция substring может работать только со строками, у которых длина не превышает 8000 байт (1 nvarchar = 2 байта). Что можно сделать в такой ситуации? |
08.04.2011, 08:46 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если есть возможность - то хранить в Blob-поле. И при этом в функции все равно путного мало чего получится, т.е. обрабатывать программно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 08.04.2011 в 09:02. |
08.04.2011, 09:29 | #3 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 151
|
Как-то непонятно, почему хранить длинные строки можно, а работать с ними нельзя...
Мне надо-то, по большому счёту, получить i-ый символ длинной строки без ф-ии substring. Неужели в такой системе как MSSQL Server 2008 нет такой простой конструкции как char = string[i]? |
08.04.2011, 09:52 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Я на 2000-ом работаю. Там тип nvarchar не более 4000. Varchar - соответственно 8000. Удивлен что в 2008-ом дали возможность более длинные строки использовать, а substring их не кушает. Мне кстати на Delphi 7 не удалось нормально обработать и varchar(1000). Максимум что использую - 255
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
08.04.2011, 10:51 | #5 | |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
ТСу вряд ли помогу, не мсскльщик
на клиенте это сделать не вопрос Цитата:
да и то это была проблема в плане отображения в гриде строк больше 255 символов, все остальное без проблем - переменной типа string пофиг откуда придут данные, просто вы не умеете их готовить (стопудово и здесь найдутся примеры - поиск в помощь). |
|
08.04.2011, 11:02 | #6 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
08.04.2011, 12:12 | #7 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
а при чем здесь дельфи7?
если мне нужно хранить строки, то я не ломаю голову над их размером и считаю, что тот кто написал типа такого в доках для программеров "раз бде не позволяет отображать в стандартных гридах больше 255 символов, то и не зачем их создавать в базе длиннее" сделал очень плохо - и я периодически сталкиваюсь с гемором, который это породило: обрезание строк там где этого не ждешь (рефакторил несколько проектов, руки поотрывал бы). если нужно отобразить в гриде часть блоба - ну выцепи эти самые 255 символов сабстром или чем-то подобным бде - прошлый век, все уже давно пользуются компонентами прямого доступа (не нужно конфигурить алиасы и т.п.) + переползают полностью или частично на другие инструменты разработки |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Криво отображает формат строки MSSQL 2008 | Droid | SQL, базы данных | 1 | 01.02.2011 11:00 |
Excel. Длинные формулы. | v00d00 | Microsoft Office Excel | 4 | 14.01.2010 18:31 |
Короткие и длинные... | nusik | Общие вопросы Delphi | 2 | 13.04.2009 10:05 |
длинные числа | molodzo | Общие вопросы C/C++ | 4 | 21.02.2008 12:46 |
Задача на длинные числы | molodzo | Помощь студентам | 1 | 21.11.2007 11:23 |