XE7 Utilisation des DataModules
Bonjour,
j'ai voulu modifier la configuration de ma fiche Datamodule appelée uSQLmodule de la manière suivante :
http://www.selzig.com/1411111100/1.png
Au départ y était placée uniquement la chaîne SQLitexxx, la chaîne de connexion mySQL étant placée sur la Form fELV. Cela fonctionnait.
J'ai voulu intégrer la chaîne mySQL initialement posée sur la Form fELV dans le DataModule. Je l'ai déplacée d'une fiche à l'autre par copie/coller puis supprimer de la Form fELV.
J'ai placé dans les uses de fELV : uSQLmodule.
Le codede fELV a été modifié ainsi :
Code:
1 2 3 4 5
| { mySQL identification : Connexion}
//if not mySQLConnect() then begin <- Initialement
if not SQLmodule.mySQLConnect() then begin
[...]
end; |
Le code appelé dans le DataModule est
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| function TSQLmodule.mySQLConnect() : Boolean;
begin
Result := True;
with mySQLConn do begin
if Connected then Connected := false;
with Params do begin
Values['Server'] := gServer;
Values['Database'] := gDatabase;
Values['user_name'] := gUserName;
Values['password'] := gPassword;
end;
try
LoginPrompt := False;
Connected := True;
except
{$IFDEF DEBUG}
on E: EFDDBEngineException do begin
Result := False;
Showmessage(E.Errors[0].Message);
end;
{$ELSE}
Result := False;
{$ENDIF}
end;
end;
end; |
Et j'obtiens le magnifique plantage visible sur l'image. Alors je me pose plusieurs questions :
- Peut-on implanter plusieurs connecteurs dans un DataModule ?
- Un seul TFDGUIxWaitCursor suffit-il ou en faut-il 2 ? (A priori cela ne change rien)
- Faut-il implanter ce TFDGUIxWaitCursor uniquement dans le DataModule ?
- Faut-il implanter les FireDac.xxx dans la Form fELV ?
FireDAC.Stan.Intf, FireDAC.Stan.Option,
FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.SQLite,
FireDAC.Phys.SQLiteDef, FireDAC.Stan.ExprFuncs, FireDAC.VCLUI.Wait,
FireDAC.Comp.UI, FireDAC.Comp.Client, Data.DB, FireDAC.Stan.Param,
FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Comp.DataSet,
VCL.Dialogs, FireDAC.Phys.MySQL, FireDAC.Phys.MySQLDef;
J'ai pensé que le problème était le TFDGUIxWaitCursor car au départ avec Firedac, j'oubliais ce composant et j'avais une erreur qui court circuitait mes exceptions. Et c'est le cas ici.
Merci.