Я работаю над настольным приложением, которое должно поддерживать (в настоящее время) доступ к MS Access и SQL Server. Приложение постоянно развивается, и в базу данных часто вносятся изменения, в основном добавление таблиц и представлений для поддержки новых функций (но также некоторые DROP и ALTER TABLEs для добавления новых столбцов).Совместимый DDL (CREATE TABLE) для разных баз данных SQL?
У меня есть система, которая компилирует DDL в исполняемый файл, проверяет базу данных, чтобы увидеть, имеет ли исполняемый файл какой-либо новый DDL, который должен быть выполнен, и выполняет его. Это отлично подходит для одной базы данных.
Моя непосредственная проблема заключается в том, что SQL Server и Access поддерживают разные имена для типов данных, поэтому оператор CREATE TABLE, который выполняет против Access, не будет выполняться против SQL Server (или, что еще хуже, будет выполняться, но создаст таблицу с различными типами данных).
Есть ли способ, который может быть использован для создания DDL (особенно команд CREATE TABLE), которые могут быть выполнены через ADO для обеих этих баз данных без необходимости создавать отдельный DDL для каждого провайдера?
Можете ли вы предложить учебник или что-то в использовании ADOX с Delphi. Я пытаюсь связать тип libarary, но имел конфликты на TTable и обнаружил, что TCatalog не раскрывает методы, которые мне нужны (например, возможность установить строку соединения). У меня было больше успеха с использованием CreateOLEObject, но у меня был отказ в разрешении на базу данных SQL Server (несмотря на то, что я могу выдать эквивалентный DDL с той же строкой соединения). –