2009-09-25 4 views
5

Estoy pensando en agregar conectividad de base de datos ODBC a una aplicación.Componente de diálogo de conexión ODBC de Delphi?

El usuario configurará y seleccionará en el tiempo de ejecución su conexión odbc de base de datos.

¿Hay algún componente que me proporcione la serie de cuadros de diálogo necesarios?

que permite al usuario seleccionar el tipo de fuente de datos, seleccione los conductores, ya navegar conexiones ODBC definidos etc.

Saludos Sam

+0

Voy a tratar las soluciones sugeridas y volver lo antes posible. – SamH

Respuesta

9

Puede probar esto, si está utilizando componentes ADO.

Opción 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); 

Opción 2

Uses 
ADODB; 

PromptDataSource(Self.Handle, InitialString); 

Opción 3

Uses 
ADODB, 
AdoConEd; 

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

Debe seleccionar "Proveedor Microsoft OLE DB para controladores ODBC"

Adiós.

0

PromptDataSource Función de la unidad ADODB. Dos parámetros son necesarios : mango

  1. la forma de la llamada
  2. una cadena de conexión. Si no desea la cadena de conexión por defecto sólo tiene que pasar una cadena vacía como:

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

Cuestiones relacionadas