2009-10-29 2 views
0

Я пишу приложение, которое может быть подключено к нескольким типам баз данных (например: SQL Server, Oracle, MySQL и т. Д.). Это приложение, ориентированное на международное приложение, поэтому я в идеале хочу, чтобы это было возможно, без необходимости полагаться на строковые литералы, если это возможно. На данный момент я проверяю имя драйвера и использую оператор case. Есть лучший способ сделать это?Как определить тип подключенной базы данных в VB6?

Заранее благодарен!

+0

Зачем вам нужен тип базы данных? Должна быть возможность написать свой код, чтобы один и тот же код работал с несколькими типами. – MarkJ

+0

@MarkJ Сделав это, я категорически не согласен с вашим заявлением :) Базы данных достаточно разные и имеют достаточно причуд, где вам нужно начинать с операторов case и т. Д. – AngryHacker

+0

Ну ладно, я каждый день узнаю новую вещь :) – MarkJ

ответ

1

Один из способов сделать это, чтобы проверить объекты подключения «Имя источника данных» и свойство «СУБД»

Пример

'lets say you have a connection object like below 
Cn1.ConnectionString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=dbname;User=root;Password=;Option=3" 
Cn1.open 
'Once the connection is opened, get the properties you are interested in 
If Cn1.Properties(9) = "MS Jet" Then 'if you are connected to Access 
    strDBType = "Jet" 
ElseIf Cn1.Properties(11) = "MySQL" Then 'if you are connected to MySQL or MSSQL 
    strDBType = "MySQL" 
End If 

НТН

0

Если я мог бы предложить другой подход, хорошо работал для меня, когда я работал с VB6 в тот же день.

Создайте класс интерфейса, который определяет ваши методы, свойства и т. Д. Возможно, одним из свойств должен быть тип DatabaseType. Затем создайте класс для каждого типа базы данных, который вы будете использовать, который реализует вышеупомянутый интерфейс.

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

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