Конференция "Базы" » Указать путь в SELECT к БД. [D7, Access]
 
  • Alex_C (07.11.11 10:06) [0]
    Почему вот так

    SELECT * FROM Diplom AS Dpl IN awards.mdb


    и вот так

    SELECT * FROM [awards.mdb].Diplom AS Dpl


    работает, а при попытке указать полный путь к файлу БД нет?
  • Медвежонок Пятачок © (07.11.11 10:13) [1]
    потому что
    http://msdn.microsoft.com/en-us/library/bb177907(v=office.12).aspx
  • Inovet © (07.11.11 12:01) [2]
    Вот зачем ты в разные базы рассовываешь всё? Делай в одной. Лучше сделай экспорт импорт для обмена хоть в текстовом формате.
  • sniknik © (07.11.11 12:43) [3]
    > а при попытке указать полный путь к файлу БД нет?
    там наверняка двоеточие есть...
  • sniknik © (07.11.11 12:45) [4]
    а вообще это карма. не слушаешь, что тебе говорят о подобной логике... :)
  • Alex_C (07.11.11 13:43) [5]

    > разные базы рассовываешь всё? Делай в одной.


    Почему все в разные? у меня всего их 2 :) БД будет. И кстати по ТЗ только так и получается.


    > потому что


    Tnx!
  • Inovet © (07.11.11 16:55) [6]
    > [5] Alex_C   (07.11.11 13:43)
    > И кстати по ТЗ только так и получается.

    Зеачит ТЗ переделать.
  • Alex_C (10.11.11 09:51) [7]

    > Вот зачем ты в разные базы рассовываешь всё?


    Вот знаешь убедил ты меня :) Хочу теперь все что можно в одну БД засунуть.
    Однако появилась такая проблема: пользователь хочет завести себе новую отдельную БД (за чем это надо - уже в соседней ветке объяснял.) Вопрос: как при создании этой БД скопировать в нее "справочные" таблицы?

    Вот моя мысль какая: я создал некую template.mdb - где есть готовые справочные таблицы. Потом создаю новую БД и в нее копирую все справочные таблицы. Вот такой вариант нормально?
  • Anatoly Podgoretsky © (10.11.11 10:28) [8]
    > Alex_C  (10.11.2011 09:51:07)  [7]

    замучаешься ты с разными базами. Особенно с запросами.
  • Inovet © (10.11.11 10:53) [9]
    > [7] Alex_C   (10.11.11 09:51)
    > Вот моя мысль какая: я создал некую template.mdb - где есть
    > готовые справочные таблицы. Потом создаю новую БД и в нее
    > копирую все справочные таблицы. Вот такой вариант нормально?

    Нормально. Только зачем копировать: поставляй базу с некоторыми заполненными справочниками и пусть пользователь с ней дальше работает. А я бы сделал ещё экспорт импорт в какой-нибудь универсальный формат, в текстовый CSV например, или XML. Но это на потом можешь оставить, если понадобится такое.
  • Alex_C (10.11.11 11:06) [10]

    > поставляй базу с некоторыми заполненными справочниками


    Я не правильно написал. Имелось ввиду что я заранее сам создал БД со справочными таблицами и с этой БД я программу и буду поставлять пользователю. Вот и при создании новой БД из "исходной БД" буду копировать справочные таблицы.


    > замучаешься ты с разными базами. Особенно с запросами.


    Вот я и хочу: БД рабочая - будет одна. Просто пользователь сможет выбирать, от куда ее брать.
    А на счет запросов - конечно согласен! Сейчас уже в общем программу переделал под SQL - уже вникаю в суть понемногу!

    Большое спасибо всем за советы - очень помогают!
  • Alex_C (10.11.11 11:13) [11]
    Кстати: как я понял в SQL нет (?) оператора, позволяющего копировать таблицы? Или плохо искал? Интересует 2 варианта: копирование только структуры и копирование вместе с данными.
  • Inovet © (10.11.11 11:32) [12]
    > [10] Alex_C   (10.11.11 11:06)
    > Имелось ввиду что я заранее сам создал БД со справочными
    > таблицами и с этой БД я программу и буду поставлять пользователю.
    > Вот и при создании новой БД из "исходной БД" буду копировать
    > справочные таблицы.

    Я понял. Я говорю - зачем копировать записи из одной базы в другую, когда можно эту template.mdb скопировать как файл в Base1.mdb Petya.mdb Vasya.mdb, программе при запуске выбрать нужную или в коммандной строке указать, и сформировать строку подключения. Про экспор импорт уже дважды писал. И не храни их в "Program files", есть для этого профили пользователя и вних папки для данных.
  • Inovet © (10.11.11 11:34) [13]
    > [10] Alex_C   (10.11.11 11:06)
    > БД рабочая - будет одна. Просто пользователь сможет выбирать,
    > от куда ее брать.

    Это не понятно. Что значит одна, но брать её из другой.
  • Inovet © (10.11.11 11:42) [14]
    > [11] Alex_C   (10.11.11 11:13)
    > Кстати: как я понял в SQL нет (?) оператора, позволяющего
    > копировать таблицы?

    Потому что при правильном проектировании копировать таблицы не нужно. А при правильном есть
    INSERT INTO table_dst SELECT field1, field2 FROM table_src

  • Alex_C (10.11.11 13:17) [15]

    > при правильном проектировании


    Есть такая задача: в одной БД несколько таблиц лога.
    Вот задача: в этой же БД создать новую пустую таблицу. SELECT - это копирование. А вот пока до создания - не понял как.


    > Это не понятно. Что значит одна, но брать её из другой.


    Не понял меня: пользователь должен в случае необходимости выбирать ФАИЛ (именно фаил!!!) БД! А вот потом уже именно с ней и работать.
  • Alex_C (10.11.11 13:18) [16]

    > до создания


    Ну не делать же CREATE TABLE? Или все время делать?
  • Inovet © (10.11.11 13:55) [17]
    > [16] Alex_C   (10.11.11 13:18)
    > Ну не делать же CREATE TABLE? Или все время делать?

    Это как раз неправильное проектирование. Не надо плодить одинаковые по смыслу таблицы. Я не понял хачем надо несколько логов, но в любом случае это должна быть одна таблица с полем в простом случае Log_Num - номер журнала. Но вероятно ещё есть какой-то смысл кроме номера, тогда ещё справочник журналов завести.
  • Alex_C (10.11.11 14:06) [18]

    > Я не понял хачем надо несколько логов


    Поясню. Хем едет в экспедицию. Есть ноут и моя программа. Он по каким то соображениям хочет сделать новую отдельную БД (фаил!!!) у себя на флешке, чтоб потом ее сихронизировать с основным логом.
    База - не проблем - просто копирование из template. Теперь он хочет завести новую таблицу. Я вот пока чего не нашел: как сделать новую таблицу (пустую) с нужными полями? В БД "образец" таблицы есть - все что нужно - скопировать структуру таблицы в новую. Вот как то так)))
  • Inovet © (10.11.11 14:26) [19]
    > [18] Alex_C   (10.11.11 14:06)
    > Теперь он хочет завести новую таблицу.

    Вот этот момент не понятен. Польхователь не должен знать ни о каких таблицах и прочем внутреннем устройстве программы.

    Я пытаюсь объяснить, что изменение структуры БД должно быть только при изменениях функциональности, иначе это ошибка проектирования. Поэтому и команды нет такой на клонирование таблиц.

    Что до описанной ситуации. Пусть работает с пустой базой, дома импортирует в основную, сама задача импорта может оказаться не такой уж и простой, точно сложнее простого копирования. Соответсвующий функционал должен быть предусмотрен в программе.
 
Конференция "Базы" » Указать путь в SELECT к БД. [D7, Access]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]