Конференция "Начинающим" » Подскажите как склеить 2 таблицы [D7, Paradox]
 
  • TTLr © (09.02.09 12:37) [0]
    Пишется ПО, для приёма объявлений...
    Работать будут в двух точках...
    Имеются две базы с одинаковой структурой, которые нужно объединить в одну...
    Вопрос, как это сделать???
  • Сергей М. © (09.02.09 12:53) [1]

    > Работать будут в двух точках


    Между точками Интернет-маршрут предполагается ?
    Или коммуникации будет осуществлять курьер с дискеткой ?)
  • TTLr © (09.02.09 12:55) [2]
    либо VPN либо курьер с флэшкой...
    Скорее всего второй вариант, курьер до офиса, где будет производится объединение и экспорт на вёрстку...
  • Сергей М. © (09.02.09 13:04) [3]
    А почему VPN маловероятна ?
  • TTLr © (09.02.09 13:08) [4]
    Регион такой. Интернет не везде.
    1 таблица типа:

    модель опции цвет
      а         б       в
    2 таблица типа:

    модель опции цвет
      г         д       е

    таблица после склейки:

    модель опции цвет
      а         б       в
      г         д       е

    Как это реализовать???
  • Сергей М. © (09.02.09 13:12) [5]
    Прочитать запиь из таблицы-источника, записать прочитанное в таблицу-приемник.
    И так для всех записей.
  • Sergey13 © (09.02.09 13:15) [6]
    > [0] TTLr ©   (09.02.09 12:37)

    А что, для какого-никакого коммерческого продукта (как я понял?) ничего лучше Парадокса не нашли?
    вариант 1. Табличка с описанием твоих 2-х точек и ссылки на нее всех нужных местах. В принципе можно и без таблички, а прямо в таблице дефолтно присваивать полю уникальный идентификатор. Но это как то некузяво ИМХО.
    выриант 2. Диапазоны непресекающихся значений для ключевых полей.
  • Юрий Зотов © (09.02.09 13:21) [7]
    INSERT ... SELECT (если поддерживается)
  • TTLr © (09.02.09 13:22) [8]

    > Прочитать запиь из таблицы-источника, записать прочитанное
    > в таблицу-приемник.
    > И так для всех записей.


    Это по-любому надо 2 таблицы создавать?
    А их не надо связывать между собой??
    И наконец как я понимаю надо организовать цикл???
    Короче надо чтобы две таблицы были открыты, читать из одной и вставлять в другую, должно быть 2 цикла????
  • Сергей М. © (09.02.09 13:26) [9]

    > надо 2 таблицы создавать?


    Что, по-твоему, есть "создать таблицу" ?


    > их не надо связывать между собой?


    Это уж тебе решать.


    > надо организовать цикл?


    Опять же тебе решать. Иногда можно и одним запросом, см. [7]


    > должно быть 2 цикла?


    Почему не 3 ? Или не 30 ? Или не 0 ?
    Объясни ход своей мысли..
  • Sergey13 © (09.02.09 13:30) [10]
    > [4] TTLr ©   (09.02.09 13:08)
    > модель опции цвет

    А ключевые поля присутствуют?
    Если просто показать все записи из двух таблиц то и "склеивать" ничего не нужно.

    Select * from T2
    Union All
    Select * from T2
  • Sergey13 © (09.02.09 13:31) [11]
    Select * from T1
    Union All
    Select * from T2

    конечно
  • Юрий Зотов © (09.02.09 13:32) [12]
    Блин... лапти мы... нет у него никаких двух таблиц, а есть одна, только в двух точках - и ее надо синхронизировать. Репликация ему нужна.

    > TTLr

    Если есть готовые средства репликации, то их и надо использовать. А если их нет, то надо написать 2 дополнительные программки. Одна - пишет таблицу в файл, другая - читает этот файл и добавляет в таблицу отсутствующие в ней записи. Основная задача - совместить первичные ключи.
  • TTLr © (09.02.09 13:41) [13]
    Так, ясно, можно и одним.
    еще один вопрос: как задать ключевые поля???
    и как сделать так, чтобы при добавлении строки, ее удалении, и добавлении еще одной нумерация строк была не:
    1
    2
    4

    а:
    1
    2
    3
    а так например было 10 строк с порядковыми номерами от 1 до 10
    удалил 2-3 а потом добавил еще несколько
    нумерация продолжается не с числа оставшихся строк а с общего количества которое было в начале.
    создать таблицу можно в аксесе и экспортировать в парадокс. я так делаю.
  • TTLr © (09.02.09 13:42) [14]

    > Блин... лапти мы... нет у него никаких двух таблиц, а есть
    > одна, только в двух точках - и ее надо синхронизировать.
    >  Репликация ему нужна.
    >
    > > TTLr
    >
    > Если есть готовые средства репликации, то их и надо использовать.
    >  А если их нет, то надо написать 2 дополнительные программки.
    >  Одна - пишет таблицу в файл, другая - читает этот файл
    > и добавляет в таблицу отсутствующие в ней записи. Основная
    > задача - совместить первичные ключи.

    и как это сделать????
    как совместить эти ключи??
  • sniknik © (09.02.09 13:46) [15]
    > Основная задача - совместить первичные ключи.
    это вообще не задача... разве что организационная - т.к. по любому нужно разделять подразделения, что отдельно, что в общей базе, а раз так то должен присутствовать идентификатор подразделения (номер), включаем его в ключ и все дела.
  • Sergey13 © (09.02.09 13:46) [16]
    > [14] TTLr ©   (09.02.09 13:42)
    > как совместить эти ключи??

    А ты ответы читаешь?

    ЗЫ: ИМХО пипец как заказчики налетели. 8-)
  • Юрий Зотов © (09.02.09 13:47) [17]
    > TTLr ©   (09.02.09 13:42) [14]

    > как совместить эти ключи??

    Обычно это делается головой. Например, ключи записей, сгенеренных в точке 1  - целые положительные, а в точке 2 - целые отрицательные. Совместимость и уникальность обеспечены. Другой вариант - ключом служит строковое поле, в которое входит некий идентификатор точки. Снова совместимость и уникальность обеспечены. И т.д. Короче, надо просто подумать.
  • TTLr © (09.02.09 13:48) [18]
    Да читаю я все. Просто не зажигается в голове та мысля, которая сейчас так нужна..
  • Sergey13 © (09.02.09 13:49) [19]
    > [18] TTLr ©   (09.02.09 13:48)

    Так может материал в принципе не горюч? 8-)
  • Юрий Зотов © (09.02.09 13:50) [20]
    > TTLr ©   (09.02.09 13:48) [18]

    Она в [15]. Надо добавить поле "ID подразделения" и включить его в ПК.
  • Anatoly Podgoretsky © (09.02.09 14:25) [21]
    > Юрий Зотов  (09.02.2009 13:32:12)  [12]

    > Основная задача - совместить первичные ключи.

    Нафига при наличии всего одной таблицы ничего совмещать не надо.
    Если действительно только одна таблица, то это задача для школьников.
  • Anatoly Podgoretsky © (09.02.09 14:26) [22]
    > TTLr  (09.02.2009 13:41:13)  [13]

    Ты должен сделать такое поле, в котором ты будешь писать все что посчитаешь нужным, в том числе и 1, 2, 3
  • clickmaker © (09.02.09 16:25) [23]
    GUID можно использовать как уникальный ключ
 
Конференция "Начинающим" » Подскажите как склеить 2 таблицы [D7, Paradox]
Есть новые Нет новых   [134479   +8][b:0][p:0.001]