BG Development


  Reply to this topicStart new topicStart Poll

> Синхронизиране на две таблици по tcp, access
ivan84
Публикувано на: 04-01-2017, 16:51
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Днес нацелих някакъв много куц проблем. Имам две аксески бази данни и целта е да ги синхронизирам дистанционно (по интернет).
За целта реших да драсна един сървиз за тая работа. Пуска select от едната страна а от другата прави insert. До тук всичко е ОК. Проблемът се появи при опит за инсертване на блокове.
Явно access не поддържа insert into... values (), (), ()... но пък попаднах на интересен трик с insert with select. Нещо подобно
SQL
insert into....
select a, b, c from tmp union all
select d, e, f from tmp
като tmp е куха таблица с един запис. Но аксесът се сърди error in from clause с код на грешка 3131.

Когато пусна само селект частта всичко е ОК. Когато пусна insert с първия select пак всичко е ОК но включа ли и union гърми.

Някакви идеи как да го фиксна това или да предложите друг подход.

Аксесът е 9х даге.

Това мнение е било редактирано от ivan84 на 04-01-2017, 16:51
PMEmail Poster
Top
ici
Публикувано на: 04-01-2017, 17:39
Quote Post


Group Icon
Име: Ивайло Илчев ики
Група: VIP
Ранг: Почетен член

Мнения: 14784
Регистриран на: 06.06.04



CODE
INSERT INTO Test
SELECT  X.[First Name], X.[Last Name] FROM (
SELECT Customers.[First Name], Customers.[Last Name]
FROM Customers UNION ALL
SELECT Customers.[First Name], Customers.[Last Name]
FROM Customers) X;


ПП. В твоя случай
CODE
insert into....
select x.f1, x.f2, x.f3 from (
select a as f1, b as f2, c as f3 from tmp union all
select d as f1, e as f2, f as f3 from tmp) x;


Това мнение е било редактирано от ici на 04-01-2017, 17:44


--------------------
Everything you can imagine is real. Pablo Picasso
PMEmail PosterUsers Website
Top
ivan84
Публикувано на: 04-01-2017, 17:43
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Утре ще го тествам и ще кажа дали работи.
PMEmail Poster
Top
Golden Gega
Публикувано на: 04-01-2017, 17:45
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 591
Регистриран на: 04.06.10



Генерирай XML и го импортирай на място:

https://technet.microsoft.com/en-us/library/ee692914.aspx
PMEmail Poster
Top
ivan84
Публикувано на: 04-01-2017, 17:58
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Това не прави ли дъмп? Ако да, то не ми върши работа защото малко опростих постановката. Реано не ми трябва репликация 1:1 а синхронизиране на данни (и добавяне на нови полета).
PMEmail Poster
Top
ivan84
Публикувано на: 05-01-2017, 14:31
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



QUOTE (ici @ 04-01-2017, 17:39)
CODE
INSERT INTO Test
SELECT  X.[First Name], X.[Last Name] FROM (
SELECT Customers.[First Name], Customers.[Last Name]
FROM Customers UNION ALL
SELECT Customers.[First Name], Customers.[Last Name]
FROM Customers) X;


ПП. В твоя случай
CODE
insert into....
select x.f1, x.f2, x.f3 from (
select a as f1, b as f2, c as f3 from tmp union all
select d as f1, e as f2, f as f3 from tmp) x;

Не става.
Явно аксес 97 не поддържа влагане на заявки във from клаузата.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0