-
Почему вот так
SELECT * FROM Diplom AS Dpl IN awards.mdb
и вот так
SELECT * FROM [awards.mdb].Diplom AS Dpl
работает, а при попытке указать полный путь к файлу БД нет?
-
-
Вот зачем ты в разные базы рассовываешь всё? Делай в одной. Лучше сделай экспорт импорт для обмена хоть в текстовом формате.
-
> а при попытке указать полный путь к файлу БД нет?
там наверняка двоеточие есть...
-
а вообще это карма. не слушаешь, что тебе говорят о подобной логике... :)
-
> разные базы рассовываешь всё? Делай в одной.
Почему все в разные? у меня всего их 2 :) БД будет. И кстати по ТЗ только так и получается.
> потому что
Tnx!
-
> [5] Alex_C (07.11.11 13:43)
> И кстати по ТЗ только так и получается.
Зеачит ТЗ переделать.
-
> Вот зачем ты в разные базы рассовываешь всё?
Вот знаешь убедил ты меня :) Хочу теперь все что можно в одну БД засунуть.
Однако появилась такая проблема: пользователь хочет завести себе новую отдельную БД (за чем это надо - уже в соседней ветке объяснял.) Вопрос: как при создании этой БД скопировать в нее "справочные" таблицы?
Вот моя мысль какая: я создал некую template.mdb - где есть готовые справочные таблицы. Потом создаю новую БД и в нее копирую все справочные таблицы. Вот такой вариант нормально?
-
> Alex_C (10.11.2011 09:51:07) [7]
замучаешься ты с разными базами. Особенно с запросами.
-
> [7] Alex_C (10.11.11 09:51)
> Вот моя мысль какая: я создал некую template.mdb - где есть
> готовые справочные таблицы. Потом создаю новую БД и в нее
> копирую все справочные таблицы. Вот такой вариант нормально?
Нормально. Только зачем копировать: поставляй базу с некоторыми заполненными справочниками и пусть пользователь с ней дальше работает. А я бы сделал ещё экспорт импорт в какой-нибудь универсальный формат, в текстовый CSV например, или XML. Но это на потом можешь оставить, если понадобится такое.
-
> поставляй базу с некоторыми заполненными справочниками
Я не правильно написал. Имелось ввиду что я заранее сам создал БД со справочными таблицами и с этой БД я программу и буду поставлять пользователю. Вот и при создании новой БД из "исходной БД" буду копировать справочные таблицы.
> замучаешься ты с разными базами. Особенно с запросами.
Вот я и хочу: БД рабочая - будет одна. Просто пользователь сможет выбирать, от куда ее брать.
А на счет запросов - конечно согласен! Сейчас уже в общем программу переделал под SQL - уже вникаю в суть понемногу!
Большое спасибо всем за советы - очень помогают!
-
Кстати: как я понял в SQL нет (?) оператора, позволяющего копировать таблицы? Или плохо искал? Интересует 2 варианта: копирование только структуры и копирование вместе с данными.
-
> [10] Alex_C (10.11.11 11:06)
> Имелось ввиду что я заранее сам создал БД со справочными
> таблицами и с этой БД я программу и буду поставлять пользователю.
> Вот и при создании новой БД из "исходной БД" буду копировать
> справочные таблицы.
Я понял. Я говорю - зачем копировать записи из одной базы в другую, когда можно эту template.mdb скопировать как файл в Base1.mdb Petya.mdb Vasya.mdb, программе при запуске выбрать нужную или в коммандной строке указать, и сформировать строку подключения. Про экспор импорт уже дважды писал. И не храни их в "Program files", есть для этого профили пользователя и вних папки для данных.
-
> [10] Alex_C (10.11.11 11:06)
> БД рабочая - будет одна. Просто пользователь сможет выбирать,
> от куда ее брать.
Это не понятно. Что значит одна, но брать её из другой.
-
> [11] Alex_C (10.11.11 11:13)
> Кстати: как я понял в SQL нет (?) оператора, позволяющего
> копировать таблицы?
Потому что при правильном проектировании копировать таблицы не нужно. А при правильном есть
INSERT INTO table_dst SELECT field1, field2 FROM table_src
-
> при правильном проектировании
Есть такая задача: в одной БД несколько таблиц лога.
Вот задача: в этой же БД создать новую пустую таблицу. SELECT - это копирование. А вот пока до создания - не понял как.
> Это не понятно. Что значит одна, но брать её из другой.
Не понял меня: пользователь должен в случае необходимости выбирать ФАИЛ (именно фаил!!!) БД! А вот потом уже именно с ней и работать.
-
> до создания
Ну не делать же CREATE TABLE? Или все время делать?
-
> [16] Alex_C (10.11.11 13:18)
> Ну не делать же CREATE TABLE? Или все время делать?
Это как раз неправильное проектирование. Не надо плодить одинаковые по смыслу таблицы. Я не понял хачем надо несколько логов, но в любом случае это должна быть одна таблица с полем в простом случае Log_Num - номер журнала. Но вероятно ещё есть какой-то смысл кроме номера, тогда ещё справочник журналов завести.
-
> Я не понял хачем надо несколько логов
Поясню. Хем едет в экспедицию. Есть ноут и моя программа. Он по каким то соображениям хочет сделать новую отдельную БД (фаил!!!) у себя на флешке, чтоб потом ее сихронизировать с основным логом.
База - не проблем - просто копирование из template. Теперь он хочет завести новую таблицу. Я вот пока чего не нашел: как сделать новую таблицу (пустую) с нужными полями? В БД "образец" таблицы есть - все что нужно - скопировать структуру таблицы в новую. Вот как то так)))
-
> [18] Alex_C (10.11.11 14:06)
> Теперь он хочет завести новую таблицу.
Вот этот момент не понятен. Польхователь не должен знать ни о каких таблицах и прочем внутреннем устройстве программы.
Я пытаюсь объяснить, что изменение структуры БД должно быть только при изменениях функциональности, иначе это ошибка проектирования. Поэтому и команды нет такой на клонирование таблиц.
Что до описанной ситуации. Пусть работает с пустой базой, дома импортирует в основную, сама задача импорта может оказаться не такой уж и простой, точно сложнее простого копирования. Соответсвующий функционал должен быть предусмотрен в программе.