Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Я не Рыцарь. Мне просто сейчас делать нечего. Olga, Вам можно позавидовать. По кол-ву откликов Вы вполне можете соперничать c соседней волной душевного стриптиза под названием "Достал SQL". Так что в плане фидбэка женский ник, безусловно, эффективен. Особенно по весне. Теперь по делу. 1.Советы относительно AnsiToOEM годятся только для 6.5 и раньше, когда bcp юзала DBLib. 2.Люди, говорящие про collation, по-моему, вообще не понимают, чем nchar отличается от char. 3.Я тоже не понимаю одну вещь: почему возник этот вопрос, п.ч. на моей памяти DTS всегда конвертила таблицы из одной кодировки в другую корректно. Единственный глюк был в 7.0, когда данные переносились нормально, а DTS Object Transfer дурил, невзирая на опцию Auto Translate. Но это было пофиксено еще в SP2 к семерке, не говоря уже о 2000. Вы интересуетесь чисто абстрактно или действительно во что-то уперлись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2002, 20:27 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Завидовать кол-ву откликов это несовсем логично. Лично меня интересует только качество получаемых ответов. Задача вцелом решается стороним приложением без проблем и вообщем не стоит и выеденного яйца. Но у меня проблема в том что необходимо организовать репликацию с N серверов на которых базы находятся в кодировке 866 (вернее хранятся), а целевая база должна быть в кодировке 1251. Выполнить репликацию, а затем транслировать целевую базу в другую кодировку очень проблематично всилу ее большого объёма и оганичений по ресурсам сервера (железа). Всилу этого интересует вопрос каким образом пересоздать базы на источниках при помощи DTS (ведь его можно запускать ночью по эаданию когда машины свободны), но в нужной кодировке. Делать это при помощи стороннего проиложения очень непросто всилу наличия ещё больших железных проблем на других сереверах и в сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 06:30 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
>> пересоздать базы на источниках при помощи DTS (ведь его можно запускать ночью по эаданию когда машины свободны), но >> в нужной кодировке... Немного я не уловил суть высказывания - вы это каждой ночью собираетесь проделывать? Или же все-таки - 1 раз превернете кодировку на источниках и забудете про эти "проблемы"? Если второе, то - как вариант: - создаете пустую БД с нужной вам кодировкой; - скриптуете все объекты в "старой" базе (например, тем же DMO); - этими скриптами создаете нужную структуру в "новой" базе; - грузите данные из "старой" базы в "новую" (хоть через Linked Servers). З.Ы. Подозреваю, что "Copy Database Wizard" - делает то же самое... но как известно - "сапог в бою надежней"... © "В бой идут - одни старики". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 07:33 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Это необходимо делать регулярно -по расписанию запускать DTS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 07:39 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
2 Дед Маздай > 1.Советы относительно AnsiToOEM годятся только для 6.5 и раньше, когда bcp юзала DBLib. Можно узнать почему? Мне кажется AnsiToOem (или, простите, CharToOem в Win32) не относится к той или иной версии SQL Server - это просто функции перекодировки из ANSI кодировки в OEM. > 2.Люди, говорящие про collation, по-моему, вообще не понимают, чем nchar отличается от char. И здесь тоже, просветите сирых и убогих про collation. Потому что про юникодную кодировку olga ни слова не говорила. 2 Olga Насчёт пресловутой OemToChar признаюсь, что-то не получилось - не смог я пока заставить её в VBScriptе работать, а времени разбираться нет пока. Всё-таки попробуйте просто втупую перегнать Copy Database Wizardом в другую базу с установленным нужным collation. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 07:53 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Это Windows Collation - и выгрузка данных через bcp и через что угодно выгружат их в кодировке 1251, но отображает их некорректно ибо иммено так они и хранятся в базе. Если открыть текстовый файл и указать редактору кодировку 866 - отобразится всё корректно. Но меня интересует каким образом можно указать DTS-у преобразовать кодировку данных при преносе в другую базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 07:58 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Ну можно на выгруженные данные натравить перекодировщик из OEM в ANSI. Но как это сделать на лету в DTS я пока не знаю. Продолжим изыскания чуть позже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 08:33 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Это надо делать налету и я тоже не знаю как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 08:46 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
>> выгрузка данных через bcp и через что угодно выгружат их в кодировке 1251... >> Если открыть текстовый файл и указать редактору кодировку 866 - отобразится всё корректно... Чем дальше я все это читаю, тем больше ничего не понимаю... "Выгрузка через bcp" - ничего не может сказать о хранимых данных, т.к. bcp суть утилита для командной строки, а у мелко-мягких все эти утилиты выводят все на STDOUT - именно в кодировке 866 ("обратная совместимость" называется). "через что угодно" - это как правило, на практике, различные "клиенты", цепляющиеся к серверу по ODBC, или OLEDB - так у них у всех параметры драйвера по-умолчанию установлены в - Perform translation for character data = Yes (он же - "AutoTranslate=Yes" в ConnectionString), т.е. - все что отдается клиенту уже должно быть перевернуто в 1251. В одном из этих случаев - ваши выгруженные файлы должны читаться редактором как 866, а в другом - как 1251, но к кодировке хранения - это не имеет никакого отношения... Кстати, по поводу параметра AutoTranslate - может попробуете "натравить" DTS на ODBC-источник, а уже в нем (источнике) - переключите пару раз этот параметр в Yes/No, да и будете знать ответ - работает оно так как надо, или нет? (у меня просто сейчас "под боком" нет 7-рки с DTS-ом). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 08:54 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
В ODBC стоит ANSI to OEM, а надо наоборот и кроме того к кодировке хранения (Cyrillic_General_Bin)- это не имеет никакого отношения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 09:24 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
А можно узнать как туда данные были запихнуты в 866 кодировке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 09:47 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Приложение использует именно эту (866)кодировку и хранит их в базе именно в 866-ой кодировке (OEM) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 09:58 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Люди, чем больше я вас читаю, тем больше убеждаюсь, что либо вы топчетесь вокруг пустой проблемы, которая яйца ломаного не стоит, либо я чего-то не понимаю в этой жизни. Последнее вероятней. Тем не менее рискну изложить свое видение на проблему, как я ее понимаю, и, соответственно, как бы я ее стал решать. Итак, забудем про кодировки. Есть сервера А и Б. С А нужно отреплицировать данные на Б, применив к ним по дороге какое-то пользовательское преобразование, которое можно описать в терминах VBScript или JavaScript. На сервере А создаем новую публикацию, предварительно отметив Show advanced options. На этапе Transform Published Data говорим Yes. Все остальное - обычным чередом. После этого из контекстного меню созданной публикации выбираем Define transformation of published data. В кач-ве назначения выбираем сервер Б и ту базу на нем (ббб), куда идет тиражирование. На следующем этапе определяем трансформации публикуемых данных идентично DTS, напр., DTSDestination("CompanyName") = UCase(DTSSource("CompanyName")). Здесь вы прописываете свое хитрое преобразование. Сохраняем получившийся DTS-пакет ааа как локальный на дистрибуторе. Создаем подписку (допустим, push), отмечая Show advanced options. Выбираем сервер-подписчик (Б) и базу на нем (ббб). На этапе Specify DTS Package выбираем пакет ааа на дистрибуторе. Абзац. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 13:33 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Дед, а ты молодец Только напиши что в DTS Package надо написать. UCase не канает Я вот уже долго вожусь - проблема заинтересовала. Таки смоделировал ситуацию: в таблице лежит значение в 866. Как его перекодировать в пекедже пока не знаю - там VB(J)Script, и не все функции работают из WinAPI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 14:24 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
В VBS есть "AscW is provided for 32-bit platforms that use Unicode characters. It returns the Unicode (wide) character code, thereby avoiding the conversion from Unicode to ANSI." Поможет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 14:32 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Я всё-таки победил через DTS! )) Чувствовал кое-чем, что истина где-то рядом. В общем идея такая. Нужно сделать две Transform Data Task. Первая - из исходной базы в текстовый файл, файл обозвать ANSI(!). Вторая - из текстового файла в базу куда надо, но сказать, что файл (тот же самый, разумеется) уже OEM(!). Кроме того, связать обе этих задачи Workflow по Completion, а то наверно первая задача не успевала файл закрыть - вторая падала. Вот )) Горд как лев. Всё делается за две минуты. С наступающим 8 марта, olga. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 14:53 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Либо я все-таки чего-то не понимаю, либо Вы по-прежнему пытаетесь изыскать самый дорогой способ определения постоянной Планка. Итак, вспомним про перекодировки. "Только напиши что в DTS Package надо написать. UCase не канает...." Я почти уверен, что в пакете ничего писать не надо. DTS корректно определяет кодовые страницы источника и назначения и соответствующим образом преобразует символьные данные при переносе. Поскольку проверять мне это сейчас в лом, то рассмотрим на всякий пожарный запасную ситуацию: "Как его перекодировать в пекедже пока не знаю - там VB(J)Script, и не все функции работают из WinAPI." Оберните вызов oemtoansi в СОМ-объект, зарегистрируйте на сервере и дерните из VBScript. Все равно будет быстрее, чем Ваше преобразование через промежуточный текстовый файл. "Дед, а ты молодец..." Спасибо за лестный отзыв, только Ваше мнение меня... Ну, примерно, как Вас UCase. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 21:26 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Черт, склероз. Всех здешних девушек с праздником. Заходите почаще - я, может, побреюсь и галстук повяжу. Хотя нет, конечно, это вряд ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 21:50 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Я в свою очередь оценил Ваш ответ, уважаемый Дед. >Я почти уверен, что в пакете ничего писать не надо. Вот в этом "почти" и всё дело. >DTS корректно определяет кодовые страницы источника и назначения и соответствующим образом преобразует символьные данные при переносе. Каким, простите, образом DTS определит, что там 866, а не 1251? Чем они отличаются с точки зрения нулей и единичек? >Поскольку проверять мне это сейчас в лом, А надо было бы Вам проверить, иначе получается пустой трёп. Пожарная ситуация с обёртыванием функции WinAPI в COM-объект работает, но только это надо уметь делать, да и времени это потребует больше, чем мой убогий способ конвертации через текстовый файл. Извините, что потревожил Вашу тонкую натуру (судя по ссылке в данном постинге на постоянную Планка). Постараюсь больше не нарушать Ваше спокойствие и, конечно же, не высказывать своё мнение о Вас. Ещё раз прошу простить меня, недостойного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 07:55 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
2 KonstN на: >> Пожарная ситуация с обёртыванием функции WinAPI в COM-объект работает, но только это надо уметь делать, да и >> времени это потребует больше, чем мой убогий способ конвертации через текстовый файл... Насчет это надо уметь делать за всех не могу поручиться, но ей-Богу, для тех кто умеет - времени это требует не больше, чем писать посты в эту раздувшуюся ветку... (я только сейчас начал догадываться, в чем соб-с-но, "проблема", да и то - не совсем уверен до конца... как в том фильме: "Так это что - Ленинград??!! Вот это вот - город на Неве??!!", т.е. - данные изначально попадали на сервер в кодировке 866 и никакие Collations тут не причем, т.е. сервер даже и не подозревал о том, что хранит что-то, кроме двоичных кодов альтернативной кодировки?) М-да... силен русский народ - в выдумывании себе трудностей, и последующем их преодолении... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 10:03 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
Collations тут е действительно не причем и сервер даже и не подозревает о том, что хранит что-то, кроме двоичных кодов альтернативной кодировки. И я очень рада что это дошло. И что хотелось бы спросить ещё, написав sql-процедуру, которая получает на входе поле в 866-й перекодирует его в 1251-так это как можно подвязать эту процедуру в DTS, ибо в написании скриптов на VB я не сильна может кто поможет дельным советом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 11:57 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
8 марта минуло и снова ... истиная природа мужского лицемерия и эгоизма ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 15:31 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
2olga IMHO KonstN показал вам очень красивый способ решения(кстати лично от меня спасибо ему за это) без каких-либо дополнительных функций конвертации ANSI<->OEM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2002, 15:50 |
|
||
|
помогите девушке
|
|||
|---|---|---|---|
|
#18+
2Glory Спасибо, Glory. Действительно приятна твоя оценка - IMHO, ты имеешь здесь наибольший коэффициент полезности постингов. 2olga Вам написать компонент-wrapper для функции OemToChar? А сарказм ни к чему, если Вы просите помощи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2002, 06:53 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32024893&tid=1823573]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 374ms |

| 0 / 0 |
