1

我是Firedac的新手,但不是使用Delphi使用FireDAC查詢SQL Server 2008 R2

我可以與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中從UI執行。

要嘗試查詢,我將表單拖放到TFDQuery上,連接屬性自動設置爲表單上的唯一連接。然後我使用查詢編輯器設置查詢,當我單擊執行時出現錯誤。

隨着代碼這樣的:

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

當我調試程序,我設置查詢激活時出現錯誤。

我看到錯誤消息中數據庫的名稱不完整。但它的組件設置

請指教完整,


我嘗試了一些額外的測試: 如果我運行從UI編輯器(雙擊該FDConnection,標籤SQL腳本)查詢,鍵入查詢,它的工作原理是:-)。

但是,當我嘗試在FDQuery組件上執行此操作時,連接被分配給以前的FDConnection,我得到相同的錯誤。這就像一些參數丟失。

+0

對不起德爾福「西雅圖」。 它在ADOConnetion + ADOQuery的UI中沒有問題。 嗯,我必須考慮切換到ADO。什麼是最好的速度,設施..? 你覺得呢? – Ydakilux

+0

「你怎麼看?」 FireDAC *似乎很好,但我更喜歡ADO的「安全數字」(我的意思是一般ADO用戶的數量,而不僅僅是德爾福的數字),以解決問題。 FireDAC非常好,只需一個人的努力,直到遇到問題,在這種情況下,它的代碼和抽象程度可能是難以逾越的。不過,作者在EMB NGs上非常活躍。 – MartynA

+0

你如何配置FireDAC連接?你沒有提供關於這個的信息,你甚至沒有解釋你在哪裏(或如何)執行'SELECT'。 *它在組件設置中是完整的*不是很有用。 –

回答

0

您正在使用SQL數據文件的位置而不是SQL數據庫的名稱。

如果您不知道名稱,可以使用嚮導來嘗試找到它。

(很抱歉不能添加評論這是由延斯在評論中也有提及。)

更新:如果這是真的名字,嘗試在[]括起來。

+0

正如我在之前的評論中所說的,這實際上就是數據庫名稱。前程序員像文件路徑一樣選擇文件名。這是我在使用嚮導時以及在使用Microsoft SQL Server Management Studio時看到的名稱。 – Ydakilux

+0

在[]中包含數據庫名稱 – Ettore