Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Здравствуйте.
Есть 2 базы данных на MSSQLServer 2008. Как лучше организовать обмен данными между ними? Репликация не подходит так, как сети может не быть. Вроде можно организовать это через XML. Можете описать как это лучше сделать? Функции выгрузки\загрузки нужно выполнять на клиентском приложении (.Net).
21 июл 09, 13:16    [7439945]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Glory
Member

Откуда:
Сообщений: 104760
insert base2.dbo.mytable (f1, f2)
select f3, f4 from base1.dbo.mytabe

Только зачем дублировать данные то ?
21 июл 09, 13:26    [7440008]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Для того чтобы с этими данными поработали в другой базе, изменили их и выгрузили обратно.
21 июл 09, 13:37    [7440084]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Glory
Member

Откуда:
Сообщений: 104760
DachNik
Для того чтобы с этими данными поработали в другой базе, изменили их и выгрузили обратно.

А сразу с ними поработать и изменить не могут ? Без перекачки туда-сюда ?
21 июл 09, 13:39    [7440100]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Нет, не могут.

insert base2.dbo.mytable (f1, f2)
select f3, f4 from base1.dbo.mytabe

Что это и зачем? Можно поподробнее? С того места где данные заносятся в указанный файл.
21 июл 09, 13:41    [7440123]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Glory
Member

Откуда:
Сообщений: 104760
DachNik
Нет, не могут.

insert base2.dbo.mytable (f1, f2)
select f3, f4 from base1.dbo.mytabe

Что это и зачем? Можно поподробнее? С того места где данные заносятся в указанный файл.

Причем тут файл ?
Это запрос добавляет данные в таблицу mytable базы base2 и таблицы mytable но уже базы base1
21 июл 09, 13:43    [7440131]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
А ничего если эти базы хранятся на разных серверах?
21 июл 09, 13:45    [7440147]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Glory
Member

Откуда:
Сообщений: 104760
DachNik
А ничего если эти базы хранятся на разных серверах?

А ничего, если вы сразу об этом будете говорить ?
21 июл 09, 13:46    [7440156]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Я наверное только подумал об этом. Забыл сказать, извините.
21 июл 09, 13:50    [7440199]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
DachNik
Я наверное только подумал об этом. Забыл сказать, извините.
О чем еще вы только подумали?
21 июл 09, 13:52    [7440211]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Ну с учетом того что эти базы на разных серверах какие варианты?
21 июл 09, 14:01    [7440269]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Glory
Member

Откуда:
Сообщений: 104760
DachNik
Ну с учетом того что эти базы на разных серверах какие варианты?

Ну так выгружайте в своем "клиентском приложении (.Net)." результаты запросом в какой угодно формат
21 июл 09, 14:03    [7440292]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Спасибо, очень помогли. А я все голову ломал как же это сделать. Оказывается всего лишь нужно выгрузить данные в какой угодно формат
21 июл 09, 15:27    [7440905]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Glory
Member

Откуда:
Сообщений: 104760
DachNik
Спасибо, очень помогли. А я все голову ломал как же это сделать. Оказывается всего лишь нужно выгрузить данные в какой угодно формат

Т.е. и формат за вас нужно придумать что ли ? И способ доставки ?
21 июл 09, 15:38    [7440999]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Не надо ничего придумывать. Я просто спросил как выгрузить данные. То что надо выбрать данные и выгрузить их в файл я уже знаю. Я спрашиваю как это сделать? Типа там с помощью такой то системной хранимой процедуры, или типа посмотри такой то класс. Ну хотя бы что-то.
21 июл 09, 15:52    [7441102]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Mayh
Guest
можно закинуть в txt файл с rowseperator = '|' и потом bulk insert в темповые таблицы, ну а оттуда уже как кривая процесса заведет
21 июл 09, 15:55    [7441126]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Glory
Member

Откуда:
Сообщений: 104760
DachNik
Не надо ничего придумывать. Я просто спросил как выгрузить данные. То что надо выбрать данные и выгрузить их в файл я уже знаю. Я спрашиваю как это сделать? Типа там с помощью такой то системной хранимой процедуры, или типа посмотри такой то класс. Ну хотя бы что-то.

Нет в TSQL никах процедур и команд для перенаправления результатов запросов во внешний текстовый файл
У вас есть ваше приложение, вот в нем и пишите выгрузку результатов в файл
21 июл 09, 15:58    [7441153]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Var79
Member

Откуда:
Сообщений: 890
DachNik
Репликация не подходит так, как сети может не быть.


может не быть вообще, то есть обмен на флешках, или может быть два раза в неделю после обеда?

если клиенское приложение то можно серилизовать/десерилизовать дата сет
на счет компактности уверен что "вручную" можно сделать лучше
21 июл 09, 16:03    [7441202]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Maks Bragar
Member

Откуда: UA->AT
Сообщений: 159
Glory,

для особо "тяжелых" случаев можно использовать :-)))

drop procedure isp_WriteToFile
GO
create procedure isp_WriteToFile
as
set nocount on
set rowcount 0
declare
@OLEResult int,
@FS int,
@FileId int,
@Hr int,
@TextString varchar(8000),
@Path varchar(255),
@source varchar(30),
@desc varchar (200)

select @Path = 'q:\temp\test.txt'
select @TextString = 'dasdasdsadas'

EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUTPUT
IF @OLEResult <> 0
BEGIN
PRINT 'Scripting.FileSystemObject'
GOTO Error_Handler
END

execute @OLEResult = sp_OAMethod @FS,'CreateTextFile', @FileID OUTPUT,@Path
IF @OLEResult <> 0
BEGIN
PRINT 'CreateTextFile'
GOTO Error_Handler
END

execute @OLEResult = sp_OAMethod @FileID, 'WriteLine', NULL, @TextString
IF @OLEResult <> 0
BEGIN
PRINT 'WriteLine'
GOTO Error_Handler
END

goto Done

Error_Handler:
PRINT '*** ERROR ***'
EXEC @hr = sp_OAGetErrorInfo null, @source OUT, @desc OUT
SELECT hr = CONVERT (binary(4), @hr), source = @source, description = @desc
return -1

Done:
EXECUTE @OLEResult = sp_OADestroy @FileID
EXECUTE @OLEResult = sp_OADestroy @FS
return 1

GO
21 июл 09, 16:05    [7441216]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Var79
если клиенское приложение то можно серилизовать/десерилизовать дата сет

А если данных много будет (очень много, такое может быть в моём случае, но не всегда), то как из датасета десериализуется это все? Датасет же весь в память записывается, или я ошибаюсь?
21 июл 09, 17:33    [7441709]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Var79
Member

Откуда:
Сообщений: 890
DachNik
Var79
если клиенское приложение то можно серилизовать/десерилизовать дата сет

А если данных много будет (очень много, такое может быть в моём случае, но не всегда), то как из датасета десериализуется это все? Датасет же весь в память записывается, или я ошибаюсь?


DataReader
XmlTextWriter
21 июл 09, 18:13    [7441964]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Var79
Member

Откуда:
Сообщений: 890
SqlDataReader
21 июл 09, 18:15    [7441972]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Спасибо
21 июл 09, 18:26    [7442032]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
Var79
Member

Откуда:
Сообщений: 890
давно читал про репликацию, вроде есть способ синхронизировать базы когда появляется интернет, но может ошибаюсь
21 июл 09, 19:12    [7442200]     Ответить | Цитировать Сообщить модератору
 Re: Обмен данными в MSSQLServer 2008  [new]
DachNik
Member

Откуда:
Сообщений: 72
Var79
давно читал про репликацию, вроде есть способ синхронизировать базы когда появляется интернет, но может ошибаюсь

Да в ADO.Net есть SYNC, но это для мобильных устройств больше подходит.
21 июл 09, 22:52    [7442616]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить