Не удается правильно настроить подключение к SQL Server в mORMot.

Я пытаюсь настроить подключение к SQL Server и ловлю ошибку

var
  GFireDACConnProp : TSQLDBFireDACConnectionProperties;
  GFFireDACConn: TSQLDBFireDACConnection;
begin
  try
    GFireDACConnProp := TSQLDBFireDACConnectionProperties.Create('MSSQL?Server=server','dbname','user','pass');
    GFFireDACConn := TSQLDBFireDACConnection.Create(GFireDACConnProp);
    // OR  I := GFireDACConnProp.Execute('Select * from Station', []);
    GFFireDACConn.Connect;
....

Сообщение об ошибке:

Проект app_.exe вызвал исключение класса исключения с сообщением «Фабрика объектов для класса {3E9B315B-F456-4175-A864-B2573C4A2101} отсутствует». Чтобы зарегистрировать его, вы можете добавить компонент [TFDPhysXXXDriverLink] в свой проект».

Каков правильный способ подключения к SQL Server и предоставления службы REST?


person SpanishBoy    schedule 07.09.2015    source источник


Ответы (1)


FireDAC более полезен, чем некоторые другие фреймворки, поскольку, когда что-то идет не так, в сообщениях об исключениях часто говорится, как решить проблему.

Итак, в вашем случае, учитывая, что в сообщении говорится: «Вы можете поместить компонент [TFDPhysXXXDriverLink] в свой проект», сначала нужно попробовать поместить соответствующий компонент DriverLink в вашу форму/модуль данных. Поскольку вы используете Sql Server, ссылкой на драйвер для выбора будет TFDPhysMSSqlDriverLink, который находится на вкладке FireDAC Links палитры компонентов.

Если вы создаете консольное приложение, очевидно, что нет формы или модуля данных, на который можно было бы поместить ссылку. В этом случае создайте его в коде:

FDPhysMSSQLDriverLink := TFDPhysMSSQLDriverLink.Create(Nil);
person MartynA    schedule 07.09.2015
comment
Это здорово, однако я использую консольное приложение. Какие трюки я должен выполнить в этом случае? - person SpanishBoy; 08.09.2015
comment
Не удается найти этот класс: F2613 Модуль «FireDAC.Phys.MSSQL» не найден. Какая-то магия :). Интересно, как mORMot борется с этой проблемой? - person SpanishBoy; 08.09.2015
comment
Не похоже, что это связано с mORMOT, просто компилятор не может найти модуль ('FireDAC.Phys.MSSQL.Dcu'). Найдите его вручную на своем жестком диске, а затем отредактируйте путь к проекту, указав путь к тому месту, где вы его нашли. - person MartynA; 08.09.2015
comment
Ну, у меня есть этот модуль в XE8, поэтому я не уверен, почему вы не можете его найти. Кажется маловероятным, что Emb случайно исключил его из Delphi 10. Вы уверены, что FireDAC должен быть включен в вашу версию? На сайте Emb должна быть матрица функций, которая подскажет вам. - person MartynA; 08.09.2015
comment
Давайте продолжим это обсуждение в чате. - person SpanishBoy; 08.09.2015
comment
Извините, я не веду чаты, и, поскольку я не могу воспроизвести вашу ошибку, я не думаю, что смогу чем-то помочь. - person MartynA; 08.09.2015
comment
Спасибо за помощь! Я предполагаю, что это ограничения версии Delphi Professional. - person SpanishBoy; 08.09.2015