Inicio > Bases de Datos, Ejemplos, Trucos > Guardar configuración de Base de Datos

Guardar configuración de Base de Datos

miércoles, 27 de enero de 2010 Dejar un comentario Ir a comentarios
Share Button

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.

<DESCARGAR EJEMPLO>

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:

ConnectionString.com

Vota este post
Subscribe
Notify of
guest

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

6 Comments
Inline Feedbacks
Ver todos los comentarios
pabloloustau
pabloloustau
13 years ago

hola neftali!
soy medico y el año pasado necesite hacer unas aplicaciones de medicina. comence a aprender lo basico de delphi descargando tutoriales y mandando mensajes al foro de club delphi, ahora se me transformó en algo apasionante. he tenido ayudas tuyas en varias oportunidades y te agradezco por eso ya que mi unica fuente de aprendizaje es por internet. te felicito por tu blog. esto me viene bien para aprender algo de ado ya que quiero hacer una base de datos para historias clinicas.

Ramiro
Ramiro
13 years ago

En lugar de utilizar el sysdatabases para mostrar las bases de datos dentro de sql server, como podría hacer para mostrar las tablas dentro de una base de datos y los campos dentro de una tabla.
Gracias.

Cesar
Cesar
13 years ago

Hola Neftali, mi consulta es la siguiente:

Como o con que herramientas puedo cargar todos los servidores mas sus respectivas instancia de(SQL Server) existentes en una red LAN en el Edit Servidor de este tu post (Server/NameInstancia), un saludo y gracias.

6
0
Would love your thoughts, please comment.x
()
x