Probleme d'alias

Signaler
Messages postés
49
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
8 août 2009
-
Messages postés
1
Date d'inscription
lundi 19 avril 2010
Statut
Membre
Dernière intervention
4 août 2010
-
j'ai cree une application de base de donne pour
qu'un utilisateur l'install chez un lui il doit cree
l'alias de la base mais si c'est un simple utilisateur
comment faire pour que l'application
cree son propre alias. ou ne pas utiliser d,alias du tout


Sortez moi de se trou svp.

plus on vie plus on apprend

12 réponses

Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello,



Voici comment créer dynamiquement un alias :

Session.AddStandardAlias('MonAlias',Repertoire où se situe le fichier .net,'PARADOX');


Puis pour le detruire ca peut servir aussi :

If Session.IsAlias('MonAlias') then Session.DeleteAlias('MonAlias');


Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
49
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
8 août 2009

Repertoire où se situe le
Fichier .net
C'est le repertoire des tables ou quoi pardon car je devlope depuis tres lontemps mais j'ai complexe vis a vis des base de donnes et surtout l'alias je le deteste

plus on vie plus on apprend
Messages postés
53
Date d'inscription
samedi 27 mars 2004
Statut
Membre
Dernière intervention
1 août 2006

Hello,

Je ne vois pas pourquoi il doit créer son Alias quand tu as créé ton appli tu as du donner un nom d'Alias a tes TTable, non? si tu fourni une application de Base de données qui utilise le BDE tu dois fournir celui-ci avec ton appli et ton problème est résolu tes bases fonctionnerons, En utilisant InstallShield fourni avec le logiciel Delphi tu inclus le BDE dans le prog que tu distribue.

DGPat
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Un alias est un nom symbolique désignant le chemin où est située une base de données.
Quand on installe le BDE, il n'y a pas d'alias créé correspondant à son application. Evidemment, si on se contente d'utiliser la base de données DbDemos fournie avec Delphi, je suis d'accord avec ce qui est écrit ci-dessus.

Donc, une fois le BDE et l'application installés, comment faire pour accèder à sa base de données ?
Trois possibilités : utiliser un alias permanent, un alias temporaire ou déclarer le chemin d'accès aux tables utilisées par l'application.

Pour ne pas avoir à modifier chaque composant orienté données (TTable, TQuery, etc), il est recommandé d'utiliser un composant TDataBase.

Voici un code qui crée un alias temporaire. Voir les commentaires pour l'adapter à la création d'un alias persistant.

<!--StartFragment-->
procedure TForm1.FormCreate(Sender: TObject);
var
  SessionsList: TStringList;
  AliasPath: string;
const
  AppAlias =  'AppAlias';
begin
  SessionsList := TStringList.Create;
  try
    Session.GetAliasNames(SessionsList);
    {On regarde si l'alias existe d&#233;j&#224;}
     if  SessionsList.IndexOf(AppAlias)  = -1 then
    begin
      AliasPath := ExtractFilePath(Application.ExeName) + 'bdd';
      {L'alias ne sera pas sauvegard&#233; dans le fichier
      de configuration du BDE. Rappels :
      cfmVirtual	Tous les alias du fichier de configuration BDE
      (le stockage permanent BDE) ainsi que les alias propres &#224; la session
      sont accessibles dans cette session.

      cfmPersistent	Seuls les alias du fichier de configuration BDE ou
      ceux ajout&#233;s au stockage permanent sont accessibles dans cette session.

      cfmSession	Seuls les alias cr&#233;&#233;s dans cette session sont
      accessibles.}
      Session.ConfigMode := cmSession;
      { L'index n'existe pas, il faut le cr&#233;er}
      Session.AddStandardAlias(AppAlias, AliasPath, 'Paradox');
    end;
  finally
    SessionsList.Free;
  end;
end;



Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
Messages postés
49
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
8 août 2009

Je suis tres heureux d'avoire des copins comme vous les Pots vous m'ete d'un grans secour cette fois je voudrais savoire comment verifier que l'alias existe deja pour ne pas le cree a chaque fois

P.S: J'ai trouver un composant qui permet de ne pas cree d'alias et d'eviter les problemes qui s'ensuit il integer la table a l'exectable de l'application elle sera plus en securiter car elle ne peut etre lu que par l'application se composant s'applle EASYTABLE disponible sur la net

plus on vie plus on apprend
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
"comment verifier que l'alias existe deja pour ne pas le cree a chaque fois"

La réponse est donnée dans le code ci-dessus :
if SessionsList.IndexOf(AppAlias) = -1 then //alias non trouvé !

Pas besoin non plus de créer des alias persistants ni d'utiliser de composants tiers pour faire fonctionner l'application. As-tu réellement lu les commentaires dans le code que j'ai déposé ci-dessus ?

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello Delphiprog,



Dis moi ej ne connaissais pas le commande Session.ConfigMode j'ai voulu l'implémenter dans mon code mais j'ai une erreur :

---------------------------

Notification d'une exception du débogueur

---------------------------

Le projet Async.exe a provoqué une classe d'exception EDatabaseError
avec le message 'Impossible d'effectuer cette opération sur une session
active'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour
continuer.

---------------------------

OK Aide

---------------------------



Est ce que tu aurais une idée du pourquoi, comment de cette erreur stp???



Merci d'avance.

++,
JMP77
Messages postés
3
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
23 mars 2006

mais comment le faire pour une apllication

crée un alias dynamiquement
Messages postés
15
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
31 mars 2010

salut
tout j'ai le meme probleme

alors mois je cree une application d'un repertoire telephonique  et j'utilise des tabels access

j'ai creer des dalias avce ODBC du window 

mais lorque je cree un setup avce insttalsheld ca va pas marcher parceque le lien de la base serat changer

alors la methode ces cedessus ...........

je sais pas comment comment proceder

alors je vais quoi metre dans la forme une database ensuite ....... quoi ?! et aussi ou je vais tapper ce code la

dvp aider moi

et merci
Messages postés
3
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
29 juin 2010

ajoute ça a uses et ca va marché
StdCtrls, Buttons, ExtCtrls, DB, DBTables, Grids, DBGrids
;
Messages postés
3
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
29 juin 2010

écoute ce codes marche bien mais si le compilateur te fait session ....
ajoute DBTables a uses dans l evenement form create de ta fiche principale et bonne courage
et voici le code pour créer alias:

procedure TForm1.FormCreate(Sender: TObject);
var
SessionsList: TStringList;
AliasPath: string;
const
AppAlias = 'fac';
begin
SessionsList := TStringList.Create;
try
Session.GetAliasNames(SessionsList);
{On regarde si l'alias existe déjà}
if SessionsList.IndexOf(AppAlias) = -1 then
begin
AliasPath := 'D:\BASEFACT1';
{L'alias ne sera pas sauvegardé dans le fichier
de configuration du BDE. Rappels :
cfmVirtual Tous les alias du fichier de configuration BDE
(le stockage permanent BDE) ainsi que les alias propres à la session
sont accessibles dans cette session.

cfmPersistent Seuls les alias du fichier de configuration BDE ou
ceux ajoutés au stockage permanent sont accessibles dans cette session.

cfmSession Seuls les alias créés dans cette session sont
accessibles.}
Session.ConfigMode := cmSession;
{ L'index n'existe pas, il faut le créer}
Session.AddStandardAlias(AppAlias, AliasPath, 'Paradox');
end;
finally
SessionsList.Free;
end;


end;
Messages postés
1
Date d'inscription
lundi 19 avril 2010
Statut
Membre
Dernière intervention
4 août 2010

bonsoir tout le monde
voila jai un probleme d'alias
est ce que a chaque fois je cree une table je cree un alias ?
merci de m aider vraiment j arrive pas a avancer dans mon application a cause des alias