2011-01-22 5 views
1

Я кодирую в Delphi, используя TADOConnection для доступа к базам данных, совместимым с ODBC.Как скопировать (и переименовать) базу данных?

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

И как мне переименовать? (Полагаю, я мог бы скопировать & удалить оригинал - если бы я знал, как копировать).

+0

Было бы интересно узнать, какие проблемы/требования вы пытаетесь решить с помощью решения «копировать базу данных»? – Stuart

ответ

4

ODBC не предусматривает копирование или создание баз данных. Это технология, специфичная для системы РСУБД. Самое близкое, что вы можете получить, это создание и заполнение (копирование) таблиц.

Единственный способ, которым вы могли бы это сделать, - выдать команду db-специфики через соединение ODBC, но для этого нам нужно было бы точно узнать, какой тип базы данных вы используете.

+0

+1 Вот чего я боялся. В настоящее время только MySQl, но я ожидаю других позже (Access, Oracle ...) – Mawg

+1

Вы бросаете довольно широкую сеть. К сожалению, я думаю, что даже команды, специфичные для db, будут работать. Например, я не думаю, что Access предоставляет любой такой объект вообще. Лучше всего создать алгоритм на тип db, который вы хотите поддерживать, и использовать процесс DI для копирования db: http://en.wikipedia.org/wiki/Dependency_injection –

+0

@Leonix: Я вижу, что у вас есть никакой предыдущий опыт работы с oracle ... то, что вы говорите (копировать базу данных) не имеет смысла для базы данных Oracle, возможно, вы хотите создать другой экземпляр и заполнить его теми же данными или, возможно, создать другую схему в том же экземпляре ... но копия базы данных, я так не думаю ... – jachguate

1

Вы используете драйверы ODBC или провайдеры ADO? Если позже, вы можете заглянуть в библиотеку ADOX, которая обеспечивает нейтральную поддержку поставщиков для работы со структурой баз данных. Я сам не знаю, поддерживает ли он операции над всей базой данных.

+0

+1 Спасибо. Я буду смотреть в него. – Mawg

Смежные вопросы