2009-09-25 6 views
5

Je pense à ajouter une connectivité de base de données ODBC à une application.Composant de dialogue de connexion ODBC Delphi?

Lors de l'exécution, l'utilisateur configurera et sélectionnera la connexion ODBC de sa base de données.

Y a-t-il des composants qui me donneront la série de boîtes de dialogue requise?

Permettre à l'utilisateur de sélectionner le type de source de données, sélectionnez les pilotes, parcourir déjà connexions ODBC définies etc.

Vive Sam

+0

Je vais essayer les solutions proposées et de revenir le plus tôt possible. – SamH

Répondre

9

Vous pouvez essayer cela, si vous utilisez des composants ADO.

Option 1

Uses 
    OleDB, 
    ComObj, 
    ActiveX; 

    function Edit_ADO_ODBC_ConnectionString(ParentHandle: THandle; InitialString: WideString;out NewString: string): Boolean; 
    var 
     DataInit : IDataInitialize; 
     DBPrompt : IDBPromptInitialize; 
     DataSource: IUnknown; 
     InitStr : PWideChar; 
    begin 
     Result := False; 
     DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize; 
     if InitialString <> '' then 
     DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER, PWideChar(InitialString),IUnknown, DataSource); 
     DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize; 

     { 
     DBPROMPTOPTIONS_WIZARDSHEET = $1; 
     DBPROMPTOPTIONS_PROPERTYSHEET = $2; 
     DBPROMPTOPTIONS_BROWSEONLY = $8; 
     DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTION = $10; 
     } 
     if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle,DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then 
     begin 
     InitStr := nil; 
     DataInit.GetInitializationString(DataSource, True, InitStr); 
     NewString := InitStr; 
     Result := True; 
     end; 
    end; 



Result:=Edit_ADO_ODBC_ConnectionString(0,OldConnectionString,NewString); 

Option 2

Uses 
ADODB; 

PromptDataSource(Self.Handle, InitialString); 

Option 3

Uses 
ADODB, 
AdoConEd; 

procedure TMainForm.Button2Click(Sender: TObject); 
Var 
ADOConnection1 : TADOConnection; 
begin 
    ADOConnection1:=TADOConnection.Create(Self); 
    EditConnectionString(ADOConnection1); 
end; 

Vous devez sélectionner "Fournisseur Microsoft OLE DB pour les pilotes ODBC"

Au revoir.

0

PromptDataSource Fonction de l'unité ADODB. Deux paramètres sont nécessaires :

  1. la poignée de formulaire appelant
  2. une chaîne de connexion. Si vous souhaitez aucune chaîne de connexion par défaut juste passer une chaîne vide comme:

    var sConn : WideString; begin sConn := PromptDataSource(Form1.Handle, ''); end;