Подделка SQL Server - PullRequest
       7

Подделка SQL Server

1 голос
/ 10 января 2010

У меня есть приложение, которое требует SQL Server 2000 в качестве хранилища базы данных. Я действительно не хочу использовать SQL Server 2000, но вместо этого я могу использовать MySQL Server.

Приложение использует ODBC для подключения к базе данных SQL Server.

Я хотел бы знать, возможно ли создать поддельный SQL Server, который будет отправлять и получать данные на / с MySQL Server

приложение <---> менеджер odbc <---> поддельный драйвер SQL Server <---> сервер mysql

Кто-нибудь, если такую ​​вещь можно сделать?

Ответы [ 4 ]

5 голосов
/ 10 января 2010

Если ваше приложение просто использует vanilla SQL через драйвер ODBC, вы сможете использовать MySQL без особых проблем. Если он использует специфические функции SQLServer, то вам нужен SQLServer - вы не сможете реально его подделать.

1 голос
/ 14 января 2010

Я бы не стал.

Вы потратите так много времени на то, чтобы убедить обоих играть красиво, но без особой выгоды. Вы должны будете сделать большую часть кода SQL Server, чтобы работать в этом сценарии. Учитывая это, вы можете просто прикусить пулю и научиться использовать SQL Server напрямую, а не пытаться каким-то образом связать их вместе, боюсь.

0 голосов
/ 10 января 2010

Не знаю, почему вы «на самом деле не хотите использовать SQL Server 2000», но если вы решите, что вам нужно, и у вас есть ПК с Windows, вы можете использовать Microsoft Database Engine 2000 Release A (MSDE2000A.exe) , Это настоящая вещь, которую можно бесплатно использовать на рабочем столе.

http://msdn.microsoft.com/en-us/library/ms811304.aspx

Я не думаю, что он доступен для загрузки из Microsoft, но вы можете найти его где-нибудь еще. Если вы не можете его найти, ваш следующий лучший вариант - использовать версию 2005 (SQL Server 2005 Express Edition) и убедиться, что вы не используете новые функции с 2000 года:

http://www.microsoft.com/Sqlserver/2005/en/us/express.aspx

0 голосов
/ 10 января 2010

Вы можете использовать модель провайдера и просто переключить, какой провайдер вы используете во время выполнения.

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

Другой способ - просто изменить источник данных ODBC во время развертывания, но, опять же, вам нужно убедиться, что код SQL действительно работает в обеих средах; что тяжело.

Как правило, поддержка нескольких баз данных является художественной формой сама по себе. Простых вещей, таких как SELECT TOP 100 для SQL Server 2k или команды LIMIT MySql, достаточно, чтобы не дать людям сделать это.

Нет реального способа «подделать» его, потому что серверы баз данных принципиально отличаются. В конечном итоге вы написали бы достаточное количество кода, просто чтобы перевести вызов sql с одного на другой ... Это пустая трата времени.

Я бы посоветовал вам просто откусить пулю и изучить MS SQL Server.

Этот сайт показывает очень простой пример того, как SQL Server, Oracle и MySql отличаются только одной реализацией оператора выбора.

...