1

Я новичок в Firedac, но не с Delphiзапросов с SQL Server 2008 R2 с FireDAC

я могу сделать соединение с SQL Server, и при подключении, нет никаких проблем. Я получаю соединение в порядке. Он работает с кодом, с мастером и с проводником FireDAC.

Имя базы данных:

C:\PROGRAM FILES (X86)\MICROSOFT SQL SERVER\MSSQL.1\MSSQL\DATA\3410b539-431f-4dff-ad0d-a574d1b13498.MDF 

я застрял с помощью простого запроса.

SELECT * 
FROM Account; 

Этот запрос работает внутри проводника FireDac но не из моей программы, я получаю следующее сообщение об ошибке:

[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server]Could not find server 'C:\PROGRAM FILES (X86)\MICROSOFT SQL SERVER\MSSQL' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.'

Я также также получаю ту же ошибку, когда я пытаюсь сделайте это из пользовательского интерфейса в Delphi.

Чтобы попробовать запрос, я опустился на форму TFDQuery, свойство соединения было автоматически установлено на уникальное соединение в форме. Затем я задаю запрос с помощью редактора запросов, я получаю сообщение об ошибке при нажатии на выполнение.

С кодом это нравится:

FDConnection1.Connected := true; 
FDQuery1.Close; 
FDQuery1.SQL.Text := 'select * from Account;'; 
FDQuery1.Active := True; 

Когда я отладки программы, я получаю сообщение об ошибке при установке запроса активен.

Я вижу, что имя БД не завершено в сообщении об ошибке. Но это полная в настройках компонента

Пожалуйста, посоветуйте,


Я попробовал некоторые дополнительные испытания: Если я выполнить запрос из редактора UI (дважды щелкнув на FDConnection, Tab сценариев SQL), введите запрос, он работает :-).

Но когда я пытаюсь сделать это на компоненте FDQuery, с соединением, назначенным предыдущему FDConnection, я получаю ту же ошибку. Это как некоторые параметры отсутствуют.

+0

Извините, Delphi "Сиэтл". Он работает без проблем в пользовательском интерфейсе с ADOConnetion + ADOQuery. Mmmm Должен ли я переключиться на ADO. Что лучше для скорости, средства ..? Как вы думаете? – Ydakilux

+0

«Как вы думаете?» FireDAC * кажется * отлично, но я предпочитаю «безопасность в цифрах» ADO (я имею в виду количество пользователей ADO в целом, а не только Delphi) для исправления проблем. FireDAC очень хорош для усилий одного человека, пока вы не столкнетесь с проблемой, и в этом случае его код и степень абстракции могут быть непроницаемы. Тем не менее, автор довольно активен в NGS EMB. – MartynA

+0

Как вы настраиваете соединение FireDAC? Вы не указали никакой информации об этом, и вы даже не объяснили, где (или как) вы выполняете 'SELECT'. * Он полностью в настройках компонента * не очень полезен. –

ответ

0

Вы используете расположение файла данных SQL, а не имя базы данных SQL.

Если вы не знаете имя, вы можете использовать мастер, чтобы попытаться его найти.

(К сожалению, не смог добавить комментариев Это также упоминается Jens в комментариях.)

Update: если это действительно имя, попробуйте заключая его в [].

+0

Как я уже говорил в предыдущем комментарии, это действительно имя базы данных. Бывший программист выбрал имя файла как путь к файлу. Это имя, которое я вижу, когда я использую мастер, и когда я использую Microsoft SQL Server Management Studio. – Ydakilux

+0

Заполнить имя базы данных в [] – Ettore

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