uses
FireDAC.Phys.MySQL,
FireDAC.Stan.Def,
FireDAC.DApt,
FireDAC.Comp.Client,
FireDAC.Comp.UI,
FireDAC.UI.Intf,
FireDAC.VCLUI.Wait, {FDGUIxWaitCursor.Provider := 'Forms'}
FireDAC.Stan.Intf,
// FireDAC.ConsoleUI.Wait, {FDGUIxWaitCursor.Provider := 'Console'}
// FireDAC.FMXUI.Wait, {FDGUIxWaitCursor.Provider := 'FMX'}
FireDAC.Stan.Async;
FDPhysMySQLDriverLink := TFDPhysMySQLDriverLink.Create(nil);
FDConn := TFDConnection.Create(nil);
FDGUIxWaitCursor := TFDGUIxWaitCursor.Create(nil);
FDQry := TFDQuery.Create(nil);
FDPhysMySQLDriverLink.VendorLib := ExtractFilePath(ParamStr(0))+'\libmariadb.dll';
FDGUIxWaitCursor.Provider := 'Forms';
FDConn.DriverName := 'MySQL';
FDConn.LoginPrompt := False;
FDConn.Params.Add('DriverID=MySQL');
FDConn.Params.Add('Server=' + vDBLink.Server);
FDConn.Params.Add('Database=' + vDBLink.Database);
FDConn.Params.Add('User_Name=' + vDBLink.UserName);
FDConn.Params.Add('Password=' + vDBLink.Password);
FDConn.Params.Add('Port=' + vDBLink.Port);
FDConn.Params.Add('CharacterSet=utf8');
FDConn.Connected := True;
FDQry.Connection := FDConn;
with FDQry do
begin
Close;
SQL.Clear;
SQL.Add(vSQL);
Active := True;
end;
======================================================================================================================
問題現象:XE8開發數據訪問程序時放入了FDPhysMSSQLDriverLink1、FDConnection1、FDConnection1、FDQuery1、DBGrid1,設計期沒法,運行期報"Object factory for class{xx-xx-xx-xx-xx} is missing. To register it, you can drop component[TFDGUIxWaitCursor] into your project."。
問題原因:群里朋友說是少個注冊類。沒有官方解釋。有了解的朋友M我哦。
問題處理:在窗體上托放一個“TFDGUIxWaitCursor”控件就可以了;或者Uses相關單元,如下圖所示: