Можно ли создавать базы данных программно с использованием DBX? - PullRequest
6 голосов
/ 30 декабря 2008

Похоже, что TSQLConnection подключается только к существующим базам данных, и я не смог найти другой компонент, который позволяет мне отправлять команды серверу баз данных.

Я использую Delphi 2009 с Firebird и MSSQL.

Одна идея, которая пришла, состояла в том, чтобы подключиться к системной базе данных (например, master или tempdb в MSSQL) и затем отправить команды создания на сервер. Это может быть вариант для MSSQL, но я не уверен в Firebird.

Мне также известны новые метаданные DBX в Delphi 2009, но я не смог найти способ создания баз данных, используя их. Все примеры, которые я нашел, - это изменение существующих баз данных.

Ответы [ 6 ]

3 голосов
/ 30 декабря 2008

Да, вы можете. dbExpress теперь включает в себя мощный набор классов метаданных для этого.

Стив Шонесси дает хорошее представление здесь .

0 голосов
/ 09 января 2011

dbExpress, включенный в Delphi, использует стратегию "наименьшего общего знаменателя". Такая информация, как статистика запросов, доступная через собственные драйверы, невидима в dbExpress. (Может быть, мне следует задать вопрос типа «Какая функция в альтернативных реализациях dbExpress заставила вас переключиться?»)

0 голосов
/ 21 декабря 2010

Эрик, если вы используете драйверы Devart, вы можете подключиться без параметра databasename и отправить команду t-sql create database.

0 голосов
/ 05 июня 2009

С Delphi 2007/2009 поставляется DBX4. Вы можете использовать низкоуровневые структуры для программного создания базы данных. Посмотри в dbxcommons.pas

0 голосов
/ 30 декабря 2008

Вы можете отправить скрипт «CREATE DATABASE» через любое соединение (ADO, OLEDB, ODBC и т. Д.), Открытое на любом сервере (или даже в файлах ms-access), если оно соответствует синтаксису DDL конкретного сервера.

0 голосов
/ 30 декабря 2008

Вы можете выполнить "CREATE DATABASE ..." для обеих баз данных со стандартным TSQLQuery.

Обратите внимание, что синтаксис отличается между этими двумя. Поскольку dbx - это легковесная библиотека lib, вероятно, это действие, специфичное для SQL и DB, никогда не будет полностью поддерживаться. Это оставляет вас с SQL.

...