Bonjour,

Deux jours que j'ai envie de tout balancer quand enfin je vois le bout du tunnel !

J'avais une appli test qui fonctionnait parfaitement avec Rio interrogeant une base de données Firebird distante via mon mobile.
Recompilé et déployé avec Alexandria rien !
le problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
procedure TDatas.ConnexionBeforeConnect(Sender: TObject);
begin
{$IFDEF ANDROID}
  // todo : vérifier que le mobile est bien sur un réseau local et/ou connecté internet
  //        à l'occasion récupérer l'adresse IP

  var
    firebirdPath: String := Tpath.Combine(Tpath.GetHomePath, 'firebird');
  var
    firebirdLib: String := Tpath.Combine(firebirdPath, 'lib');

//  CreateSymlinkIfNecessary(Tpath.Combine(Tpath.GetHomePath, 'libfbclient.so.2'),
//    Tpath.Combine(firebirdLib, 'libfbclient.so.3.0.7'));
  Connexion.LibraryLocation :=  Tpath.Combine(firebirdLib, 'libfbclient.so.2');
{$ENDIF}
end;

procedure TDatas.CreateSymlinkIfNecessary(const SymLink, Target: String);
var LinkCreated : Boolean;
begin
  if not FileExists(SymLink) then
  LinkCreated:=TFile.CreateSymLink(SymLink, Target);
  if not LinkCreated then
      raise Exception.Create(Format(StrCouldNotCreateSym,[Symlink,Target]));
end;
CreateSymLink ne fonctionne pas sous Android pourtant dans le programme Rio j'avais écrit la même chose.
Donc ma question : c'est moi ou un upgrade de version à oublié cette partie ?

Avant d'en arriver à cette conclusion j'ai aussi testé FileGetSymLink avec le même insuccès
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31
32
33
34
 
procedure TForm3.btntestZEOSClick(Sender: TObject);
var r,l,lnk : string;
    linkcreated : boolean;
begin
memo1.Lines.Add('ZEOS');
r:=tpath.combine(Tpath.Gethomepath,'firebird');
r:=Tpath.Combine(r,'lib');
l:=tpath.combine(r,'libfbclient.so.3.0.7');
if FileExists(l) then memo1.Lines.Add(l+'  existe');
l:=tpath.combine(r,'libfbclient.so.2');
if FileExists(l) then begin
        memo1.Lines.Add(l+'  existe');
        zconnection1.LibraryLocation:=l;
        if FileGetSymlinkTarget(l,lnk)
          then  memo1.Lines.Add('lien sur '+lnk)
          else  memo1.Lines.Add('Filegetsymlink fonctionne pas');
  end;
 lnk:=tpath.combine(Tpath.GetHomePath,'libfbclient.so.2');
 LinkCreated:=TFile.CreateSymLink(l, tpath.combine(r,'libfbclient.so.3.0.7'));
 if linkCreated then
   begin
       memo1.Lines.Add(lnk+'  créé');
       if FileExists(lnk) then
        begin
         memo1.Lines.Add('lien trouvé');
         zconnection1.LibraryLocation:=lnk;
       end
       else memo1.Lines.Add('lien non trouvé !');
   end
 else memo1.Lines.Add('lien non créé ! là, ça coince');
zconnection1.Connect;
zquery1.Open;
end;
voir dans le mémo le résultat ! Encore une fois c'est moi ou je me suis trompé dans ma syntaxe ou ...?

Nom : Capture.PNG
Affichages : 74
Taille : 73,6 Ko

Si, comme vous le constatez, la connection s'est faite c'est parce que j'ai déployé le lien 'libfbclient.so.2'

Je vais désormais pouvoir tenter de faire un programme avec firebird embarqué (oui c'est et un peu juste pour relever le challenge)