Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Добрый день! Возникла нелегкая задача – экспортировать данные из системы, работающей на СУБД Cache в систему на MS SQL. Подскажите, каким образом можно экспортировать глобали в базу MS SQL для дальнейшей обработки. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2006, 13:16 |
|
||
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Через Cache SQL Manager пробовали ? Cache SQL Tables into ASCII Files Ну а дальше в MS SQL, дело техники... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2006, 14:03 |
|
||
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
нужно экспортировать ГЛОБАЛИ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2006, 15:30 |
|
||
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Если потребуется это делать хотя бы еще пару раз, то можно использовать Cache SQL Storage для того, чтобы навернуть на ваши глобали классы Cache. Если операция разовая, то проще всего создать свой запрос на основе Cache Object Script, который будет виден из SQL Server как хранимая процедура. Результаты этого запроса вы определяете самостоятельно. Пример: ClassMethod testqueryClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = testqueryExecute ] { write "--------------------------------",! write "Start: ",$ZDT($LI(qHandle,2)),! write "End: ",$ZDT($H),! Quit $$$OK } ClassMethod testqueryExecute(ByRef qHandle As %Binary) As %Status { set qHandle=$LB("",$H) ;; ID,Start Quit $$$OK } ClassMethod testqueryFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = testqueryExecute ] { set Row="" ;; reset the row set i=$LI(qHandle,1) ;; previous eid set eid=$order(^a(i)) ;; current eid if eid="" { set AtEnd=1 } else { set name=$g(^a(eid)) set Row=$LB(eid,name) ;; set the result set $LI(qHandle,1)=eid ;; pass the current eid to the next fetch } Quit $$$OK } Query testquery() As %Query(ROWSPEC = "eid:%String,name:%String") { } Запрос testquery можно определить как хранимую процедуру. Делаем глобал: 1) ^a(1)="Serg", ^a(2)="InterSystems", ^a(3)="Cache-rulezz" 2) Запускаем testquery (3)Результат: eid:1 name:Serg eid:2 name:InterSystems eid:3 name:Cache-rulezz ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2006, 16:25 |
|
||
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
скажу сразу - опыта работы к Cache нет. если я правильно понимаю: %Library.CacheSQLStorage - шаблон класса (говоря терминами с++), и на его основе мы определяем работу с глобалями через реляционные механизмы доступа. все хорошо, НО: * глобалей у нас (мягко скажем) много * опыта работы с Cache'ой (мягко скажем) мало * нужен механизм только _чтения_ данных, причем "одноразовый". план работ примерно такой - выгружаем все что есть, изучаем, пишем конвертер, в день Икс выгружаем свежие данные и запускаем конвертер. все. идеальный вариант - механизм, позволяющий "оптом" перекинуть все глюбали в формат для загрузки "куда нибудь". ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 13:39 |
|
||
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Возможно вам не стоит выгружать все глобали. Есть подозрение, что многие из них используются только как индексы, соответсвенно будет достаточно выгрузить только часть, а потом уже в полученных таблицах добавить необходимые индексы. Как вариант для выгрузки можно написать небольшую рутинку, обходящую глобали и формирующую xml, который уже можно будет скормить MSSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 14:40 |
|
||
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
хорошо и качественно написать не получится - отсутствует опыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:45 |
|
||
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Господа! Мы готовы обсудить сроки и стоимость работ по "извлечению" информации. г. Санкт-Петербург, e-mail в визитке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 18:28 |
|
||
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Вам еще не сказали самый простой способ экспорта глобалей :) в консоли (в нужном namespace): D^%GO это программа экспорта глобалей. можно прямо из проводника Cache (win) экспортировать глобали. получится текстовый файл, потом его можно спокойно парсить. можно написать простую программу на COS (встроенный язык), которая запишет в файл глобал в нужном формате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2006, 09:10 |
|
||
|
миграция СУБД Cache -> MS SQL Server
|
|||
|---|---|---|---|
|
#18+
SwordFishскажу сразу - опыта работы к Cache нет. если я правильно понимаю: %Library.CacheSQLStorage - шаблон класса (говоря терминами с++), и на его основе мы определяем работу с глобалями через реляционные механизмы доступа. все хорошо, НО: * глобалей у нас (мягко скажем) много * опыта работы с Cache'ой (мягко скажем) мало * нужен механизм только _чтения_ данных, причем "одноразовый". план работ примерно такой - выгружаем все что есть, изучаем, пишем конвертер, в день Икс выгружаем свежие данные и запускаем конвертер. все. идеальный вариант - механизм, позволяющий "оптом" перекинуть все глюбали в формат для загрузки "куда нибудь". ;)) наш инструмент MX отобразит каждую м-глобаль на отдельный лист EXCEL (если не влезет вся на лист - то по кускам) и еще дополнительно может продублировать эти таблицы в файлы CSV затем делайте с ними что хотите mx@enters.eu ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2006, 09:47 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=33833517&tid=1559548]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 373ms |

| 0 / 0 |
