Supprimer un alias ODBC dans le BDE

itachi1988 Messages postés 2 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 1 février 2009 - 10 avril 2008 à 11:21
xpmich Messages postés 62 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 11 mars 2010 - 9 déc. 2008 à 14:48
Bonjour,

Je fais un programme sous Delphi 7. J'aimerai savoir si il y a moyen de supprimer un alias ODBC automatiquement. Je m'explique pourquoi.

J'aimerai rendre mon programme portable, mais lors de la création de l'ODBC automatiquement, tous ce passe bien. Par contre, dés que je déplace le dossier, il me dit que ma base est bien créer. Super je me dis, mais je me rend vite compte que le lien de l'ODBC est dirigé vers l'encien emplacement et c'est pas ce que je veux!!

Merci de votre attention

P.S. Lien vers l'ODBC automatique

4 réponses

HAFTARIFOUAD Messages postés 256 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 6 janvier 2011
10 avril 2008 à 17:57
Bonjour ;-)

Il y a une autre solution qui peut remplacer l'utilisation de l'alias.

Placez vos tables (bases de données) dans le même répertoire de l'éxécutable;
dans l'option de TableName mettez '.\' ;

Je pense que c'est claire, bonne chance et bonne programmation.

HAFTARI Fouad
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
11 avril 2008 à 11:13
La réponse de Nono40 (voir ton lien ci-dessus) est éminemment claire à ce sujet et tient en une phrase. Je te conseille de la relire et d'en tirer les conclusions qui s'imposent.

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
12 avril 2008 à 13:38
May it's  Usefull for ya

var
  GAlias:    string  = 'ES';
  GDriver:   string = szPARADOX;
  GAliasDir: string;
  FParams:   string;
  FDrvName:  string;
  FDelete:   boolean;

Procedure Modif_alias(chemin:string);
var i:integer;
   begin
  for i := 1 to ParamCount do
  begin
    case i of
      1: GAlias    := ParamStr(1);
      2: GAliasDir := ParamStr(2);
      3: GDriver   := ParamStr(3);
    end;
  end;

    if GAliasDir = '' then
 GAliasDir := chemin;

 begin
 GAlias := 'ES' ; //exemple alias ici c'est ES comme nom

    FDelete := True;
  // GAlias := Copy(GAlias, 1, Length(GAlias));
    Delete(GAlias, 0, 2);                    //it's what you seek
end ;

  FDrvName := GDriver;
  //Your driver and server name
  if      (CompareText(GDriver, szPARADOX) = 0)     then
 begin
    if (CompareText(GDriver, szCFGDBSTANDARD) = 0) then FDrvName := szPARADOX;
    FParams := Format('%s:"%s"',  [szCFGDBPATH, GAliasDir]) +
               Format(';%s:"%s"', [szCFGDBDEFAULTDRIVER, GDriver]) +
               Format(';%s:"%s"', [szCFGDBENABLEBCD, szCFGFALSE]);
 end ;
  DbiInit(nil);
  try
    if FDelete then
      try
        DbiDeleteAlias(nil, PChar(GAlias));
      except
      end;

    try
      DbiAddAlias(nil, PChar(StrToOem(GAlias)),
                       PChar(StrToOem(FDrvName)),
                       PChar(FParams), True);
      DbiCfgSave(nil, nil, True);
    except
    end;

  finally
    DbiExit();
  end;
end;
0
xpmich Messages postés 62 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 11 mars 2010
9 déc. 2008 à 14:48
Bonjour à tous,
La remarque de Nono40 dans le lien itachi1988 précise qu'il faut supprimer le lien ODBC via le gestionnaire.
Dois-t-on en conclure qu'il est impossible de supprimer proprement ces liens par du code ?
Si non, pourquoi ?
Merci de votre réponse.
Xpmich
0