Guardar configuración de Base de Datos
Es una cosa que en multitud de ocasiones hemos necesitado hacer; Ya sea con la configuración del acceso a Base de Datos, con la configuración de propiedades, guardar estado del programa, posición,…
En este caso en concreto (a raiz de este hilo en Clubdelphi) se trata de guardar la configuración de Base de Datos. El contenido importante de la propiedad ConnectionString.
Podemos almacenada TODO el contenido de la propiedad en un sólo elemento o guardar los elemtos relevantes de la conexión (Servidor, usuario, Base de Datos y password); En mi caso he preferido el segundo.
Para ello lo más sencillo es utilizar la clase TIniFile que provee Delphi.
Para guardar los valores utilizamos WriteString:
// Grabar ini.WriteString(CONFIG_SECTION, 'User', edtUser.Text); ini.WriteString(CONFIG_SECTION, 'password', edtPassword.Text); ini.WriteString(CONFIG_SECTION, 'Server', edtServer.Text); ini.WriteString(CONFIG_SECTION, 'BaseDatos', cbBD.Text); |
Y para recuperarlos el equivalente ReadString:
// Cargar datos edtUSer.Text := ini.ReadString(CONFIG_SECTION, 'User', STR_EMPTY); edtPassword.Text := ini.ReadString(CONFIG_SECTION, 'password', STR_EMPTY); edtServer.Text := ini.ReadString(CONFIG_SECTION, 'Server', STR_EMPTY); cbBD.Text := ini.ReadString(CONFIG_SECTION, 'BaseDatos', STR_EMPTY); |
Una vez tenemos los datos podemos montar la conexión y activarla.
const STR_CONN = 'Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;' + 'User ID=%s;Initial Catalog=%s;Data Source=%s'; ... // Intentar conectar ADOConnection1.ConnectionObject.ConnectionString := Format(STR_CONN, [edtPassword.Text, edtUser.Text, cbBD.Text, edtServer.Text]); |
En este ejemplo además se utiliza otra conexión con casi los mismos parámetros introducidos, pero accediendo a la tabla master, para preguntar al servidor SQL por las Bases de Datos disponibles y así mostrarlas al usuario:
SELECT * FROM SysDataBases |
Adjunto el ejemplo coon el código.
En este caso, la conexión es con SQL Server mediante OLEDB. En general, para esta y otras conexiones os recomiendo una web creada específicamente al respecto:
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…