Ajout / suppression odbc sous delphi

Soyez le premier à donner votre avis sur cette source.

Vue 10 664 fois - Téléchargée 1 025 fois

Description

Une personne m'a demandé comment gerer une liaison OBDC sous Delphi. J'ai trouvé sur le net un progamme qui me semble bien marcher.

Bonne prog.

Source / Exemple :


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    ButtonCreation: TButton;
    Button2: TButton;
    Panel1: TPanel;
    EditDriver: TEdit;
    EditNomDSN: TEdit;
    EditDescription: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    EditBDD: TEdit;
    Label4: TLabel;
    Button3: TButton;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Label5: TLabel;
    procedure ButtonCreationClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }

  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

const
ODBC_ADD_DSN = 1 ;
ODBC_CONFIG_DSN = 2  ;
ODBC_REMOVE_DSN = 3  ;
ODBC_ADD_SYS_DSN = 4  ;
vbAPINull : hwnd= 0   ;

function SQLConfigDataSource (hwndParent : hwnd; fRequest : Longint;  lpszDriver : AnsiString; lpszAttributes : AnsiString)  : Longint ; stdcall;  external 'ODBCCP32.DLL' name  'SQLConfigDataSource' ;

function CreeDSNAvecBoite(Driver,NomDSN,Description,FichierBaseDeDonnees:string):integer;
var
  strDriver : AnsiString ;
  strAttributes: AnsiString  ;
begin
  strDriver := Driver ;
  strAttributes := 'DSN='+NomDSN+ #0  ;
  strAttributes := strAttributes + 'DESCRIPTION='+Description + #0  ;
  strAttributes := strAttributes + 'DBQ='+FichierBaseDeDonnees + #0 ;
  Result :=SQLConfigDataSource(Form1.Handle  , ODBC_ADD_DSN, strDriver, strAttributes) ;
end;

function CreeDSN(Driver,NomDSN,Description,FichierBaseDeDonnees:string):integer;
var
  strDriver : AnsiString ;
  strAttributes: AnsiString  ;
begin
  strDriver := Driver ;
  strAttributes := 'DSN='+NomDSN+ #0  ;
  strAttributes := strAttributes + 'DESCRIPTION='+Description + #0  ;
  strAttributes := strAttributes + 'DBQ='+FichierBaseDeDonnees + #0 ;
  {Pour visualiser la boite de dialogue, utiliser Form1.Handle au lieu
  de vbAPINull.}
  Result :=SQLConfigDataSource(vbAPINull  , ODBC_ADD_DSN, strDriver, strAttributes) ;
end;

function DetruitDSN(Driver,NomDSN:string):integer;
var
  strDriver : AnsiString ;
  strAttributes: AnsiString  ;
begin
  strDriver := Driver ;
  strAttributes := 'DSN='+NomDSN + #0  ;
  result := SQLConfigDataSource(vbAPINull, ODBC_REMOVE_DSN, strDriver, strAttributes) ;
End;

procedure TForm1.ButtonCreationClick(Sender: TObject);
begin
if CreeDSN(EditDriver.Text,EditNomDSN.Text,EditDescription.Text,EditBDD.Text)
   <>0 then
     Showmessage ( 'DSN Créé')
       Else
          Showmessage( 'Echec de création du DSN') ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
      If DetruitDSN(EditDriver.Text,EditNomDSN.Text) <> 0 Then
         Showmessage ('DSN supprimé') 
      Else
         Showmessage ('Echec de suppression du DSN') ;
 End;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if OpenDialog1.Execute then EditBDD.Text:=OpenDialog1.FileName;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  CreeDSNAvecBoite(EditDriver.Text,EditNomDSN.Text,EditDescription.Text,EditBDD.Text);
end;

end.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
bakhti2011 Messages postés 3 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 17 décembre 2012
17 déc. 2012 à 21:40
mais amis j ai un probleme , j ai utilise installsheled pour installer mon projet {delphi7) ,mai âpre installation j ai l erreur suivent " microsoft pilote ODBC dBase inconnu n et pas un chemin valide ." quesque je fait
wapok Messages postés 4 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 7 novembre 2008
7 nov. 2008 à 15:27
merci du bout de code
cs_blanc76 Messages postés 42 Date d'inscription samedi 27 novembre 2004 Statut Membre Dernière intervention 21 avril 2009
20 juil. 2005 à 11:57
C'est trés bien marché. Mais es que je peut connaitre comment je verifie l'existance ou l'absence d'un pont ODBC sans le cré à chaque fois.
birdyz Messages postés 42 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 4 septembre 2006
25 févr. 2003 à 11:47
Bien trouvé. C'est justement ce dont j'avais besoin.
Merci beaucoup
lnicos Messages postés 67 Date d'inscription lundi 4 mars 2002 Statut Membre Dernière intervention 4 octobre 2005
28 nov. 2002 à 09:25
jcrois que c moi, ;-p, je te remercie c super sympa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.