Я нашел решение самостоятельно, и это сложно (возможно, это связано с ошибкой, на мой взгляд).
Чтобы проверить соединение с базой данных, я сначала создал соединение с проводником баз данных. ,Это сработало, и я сохранил это соединение, используя то же имя базы данных.
Когда я использую команду database
, проверяя ее исходный код, я увидел, что первое, что он делает, это проверяетесли существует источник данных с таким именем и, если нет, он ищет базу данных. Проблема заключалась в том, что, поскольку у моего соединения было то же имя базы данных, database
предполагало, что я хотел использовать версию команды источника данных вместо базы данных. Он попытался использовать эту команду:
conn = database(datasource,username,password)
вместо этой:
conn = database(databasename,username,password,driver,url)
, поскольку wtrade
является одновременно именем базы данных и источника данных. В этом случае четвертый аргумент, driver
, должен быть именем параметра, например "Vendor"
из "PortNumber"
, согласно документации Matlab, поэтому, поскольку строка драйвера не совпадает с именем параметра, у меня возникла ошибка.
Я удалил источник данных с тем же именем базы данных, и все начало работать.
Я уведомил об этом MathWorks, так как, по моему мнению, не должно быть проблем, если база данных имеетодно и то же имя источника данных, поскольку подпись различна, поэтому команда database
должна обрабатывать и этот случай.