2014-11-06 5 views
0

Я пытаюсь изменить свои sql запросы на основе типа базы данных.Получить тип базы данных из строки подключения

Есть ли способ, чтобы понять поставщик базы данных (Sql Server, MySql, Oracle, Sqlite), имея строку подключения в качестве измеряемой величины?

И этим я не имею в виду разбор и разделение строки соединения и поиск слов.

ответ

0

Вы видели этот сайт: connectionstrings.com?

Здесь перечислены все наиболее популярные строки подключения DBs - вы можете увидеть различия в их форматах.

E.G. Oracle:

Data Source=MyOracleDB;Integrated Security=yes; 

MySQL:

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; 

SQL Server:

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword; 

Из этих примеров можно сказать, что вы можете определить, Oracle DB по Data Source подстроки, то заметить разницу между MySql и SQL Server по строкам Uid и User Id соответственно и так далее.

+0

Да, я знаю о соединенииstrings.com. Ваше решение работает, но, как я уже говорил, мне было интересно, есть ли более простой способ разбора строк? – Disasterkid

+0

Слишком много эвристики. IIRC SQL Server поддерживает синтаксис 'uid' и' user id'. Кроме того, существует SQLNCLI *, который также поддерживает по крайней мере 'uid'. – JensG

+1

@Pedram, вы имеете в виду использование библиотеки, которая делает это за вас? Поскольку строка подключения - это просто строка, что еще можно сделать с ней, кроме синтаксического анализа для специальных подстрок? – ZuoLi