Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-07-2007
FelipeDiaz FelipeDiaz is offline
Miembro
 
Registrado: may 2007
Posts: 75
Poder: 18
FelipeDiaz Va por buen camino
Post Como Utilizar un archivo .ini

Hola a todos.

De antemano agradezco a todos los participantes porque desde sus inquietudes y respuestas he aprendido mucho.

Tengo una inquietud y es.... en que consiste o como se utilizan los archivos .ini para coneccion con base de datos.

He visto que en muchas respuestas se sugiere esto pero por mas que he indagado en ligros de delphi y eneste foro, no encuentro detalles que me den idea de ..a que se refieren.

Agradezco me ayuden a comprender de que se trata.

Saludos,

Felipe.
Responder Con Cita
  #2  
Antiguo 04-07-2007
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Hola,


Supongo que se refieren a almacenar datos en el .ini (esa es su función, almacenar datos).

Slaudos.
Responder Con Cita
  #3  
Antiguo 04-07-2007
FelipeDiaz FelipeDiaz is offline
Miembro
 
Registrado: may 2007
Posts: 75
Poder: 18
FelipeDiaz Va por buen camino
Smile Utilizacion de archivo ini

Bueno como te decia nunca he usado un archivo .ini.

En una ocasion pregunte en el foro, como podia desarrollar una aplicacion que en cualquier momento le permitiese al usuario cambiar de base de datos a otra que contiene la misma estructura en tablas, pero con informacion de diferenets periodos,

Ejemplo. Una aplicacion de tipo comercial administra informacion de Pedidos, Facturas, Inventarios.

Y en los directorios:
BD2005, esta la informacion o tablas que contienen la informacion del año 2005.

BD2006, esta la informacion o tablas que contienen la informacion del año 2006. y asi sucesivamente.

La idea es que el usuario pueda desde el interior de la aplicacion, tener acceso a un menu que le permita salir de un directorio (BD) y entrar a otro.

Obviamente tambien crear y eliminar.

Cuando lance esta pregunta alguien me sugirio utilizar archivos .ini. en lugar de cambiar la ruta de la BD en los componentes en delphi.

No se como implementar o utilizar un .ini.
Tengo confusion.... Existe un solo .ini o se pueden crear varios?
Como funcionan , cuando se ejecutan, para que sirve(n)?
Como se declara una sentencia o intruccion para definir el directorio en modo ejecicion?
Donde se guarda en .ini?
Como se hace referencia a el desde la aplicacion?

Bueno no se si los confundo tambien...


Agradezco la ayuda.
Responder Con Cita
  #4  
Antiguo 04-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola FelipeDiaz,

Estas son tus dudas...
Cita:
Tengo confusion.... Existe un solo .ini o se pueden crear varios?
Como funcionan , cuando se ejecutan, para que sirve(n)?
Como se declara una sentencia o intruccion para definir el directorio en modo ejecicion?
Donde se guarda en .ini?
Como se hace referencia a el desde la aplicacion?
Y todas se puede responder con tan solo una sola referencia: la clase TiniFile. Esta clase lo que hace es leer/crear/escribir un archivo plano, sencillo que lo que tiene de bonito es una extensión .ini.

Un archivo ini tiene una estructura como esta:

[SECCION 1]
Variable 1 = tipo //O era dos puntos? No recuerdo bien
Variable 2= tipo

[SECCION 2]
Variable 1 = tipo

Para crear un archivo ini, la clase recibe en Create() el patch de donde deberá estar grabado.

Cuenta con procedimientos ReadXXXX y WriteXXXX, siendo XXXX el tipo de dato que debe leer o escribir para una variable o sección. No tengo Delphi a mano. Pero creo que si no me falla la memoria las mayoría de los procedimientos se llaman así... ReadXXXX y WrtieXXXX.

Para mayor referencia busca en la ayuda por TiniFile. Y como bien sabes, en los foros se ha tratado el tema por lo que una buena búsqueda empleando como palabra clave TIniFile puede darte buenos resultados y evuacuar tus dudas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 04-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Delphius
[SECCION 1]
Variable 1 = tipo //O era dos puntos? No recuerdo bien
Recuerdas bien Delphius. No son dos puntos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 04-07-2007
mierda mierda is offline
Miembro
 
Registrado: may 2006
Posts: 129
Poder: 18
mierda Va por buen camino
1 ejemplo

teniendo el siguiente fichero ini

Código Delphi [-]
[VARIOS]
REFRESCO=5000

interactuar con el ini

Código Delphi [-]
 
ini: TIniFile; // definimos el ini

escribir en el ini

Código Delphi [-]
 
ini := Tinifile.Create(inidir + '\' + 'confmes.ini');
ini.WriteString ('VARIOS','REFRESCO',inttostr(aux));
ini.free;

leer del ini

Código Delphi [-]
 
ini := Tinifile.Create(ruta + 'confmes.ini');
ract := ini.ReadString('VARIOS','REFRESCO','');
ini.free;


saludos
Responder Con Cita
  #7  
Antiguo 05-07-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
En la ayuda de delphi viene muy bien explicado y trae ejemplos. Yo ahi lo aprendí cuando me hizo falta, tambien trae ejemplos muy buenos de como usar el registro de windows para guardar cosas (a mi no me gusta mucho esa modalidad)

En realidad los inis son faciles, muy simples y se pueden editar hasta con el notepad.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #8  
Antiguo 05-07-2007
[juanramones] juanramones is offline
Miembro Premium
 
Registrado: ene 2007
Posts: 6
Poder: 0
juanramones Va por buen camino
Archivos .ini y Selección de Bases de Datos con TADO Controls

En agradecimiento a muchos que han colaborado doy este pequeño aporte con los conocimientos adquiridos de los participantes de este Club.

Digamos que el archivo de texto Inicio.ini es el de configuración general de la aplicación y contiene lo siguiente

Código:
[Configuracion]
udl=db1.udl
y que el archivo de texto Bases.ini contiene los siguiente:
Código:
[BD]
udl1=db1.udl
udl2=db2.udl
udl3=db3.udl
udl4=db4.udl
Donde [BD] es una sección y donde
udl=db1.udl es una variable con un valor asignado y así con cada udl#=db#.udl que indica los archivos .udl de configuración de acceso a Bases de Datos.

Recomiendo leer todos los comentarios de las líneas de código a continuación


Código Delphi [-]
function BasesDisponibles : TStringList;  // función que extrae las bases disponibles según el archivo Bases.ini
  var
    AIniFile : TIniFile; // Archivo de Inicio .INI   // USES IniFiles, // Manejo de Archivos .ini
    Ruta: string;
    StrLst : TStringList;
begin
  StrLst := TStringList.Create; 
  Ruta := ExtractFileDir(ParamStr(0));   // Ruta desde donde se ejecuta el archivo Principal de la aplicación
  AIniFile := TIniFile.Create(Ruta + '\Bases.ini');   // se abre o se crea el archivo de inicio del sistema
  AIniFile.ReadSectionValues('BD',StrLst);// para leer sólo los nombres de secciones se usa  AIniFile.ReadSections(StrLst);
  AIniFile.Free; // Cierra el Archivo y libera el objeto.
  result := StrLst;
end;

procedure TForm.Carga_Items_DB(DbSeleccionada: String);  // carga los datos de las bases en un ComboBox y coloca por defecto el de la Configuración del archivo Inicio.ini
  var
    StrLst : TStringList;   // USES Classes,  // Manejo de TStrings
    i : Integer;
begin
  StrLst := BasesDisponibles;
  for i := 0 to StrLst.Count - 1 do // recorre todos los ítems de StrLst
  begin
    ComboBoxBases.Items.Add(StrLst.Strings[i]); // la forma debe tener un Control de Tipo TComboBox
    if StrLst.Strings[i] = DbSeleccionada then
    begin
      ComboBoxBases.ItemIndex := i;
    end;
  end;
end;

procedure TForm.BotonOkClick(Sender: TObject); // Procedimiento de Evento al presionar un Botón de OK en la forma
  // Guarda los Cambios
  var
    Ruta: string;
    StrLst : TStringList;
    AIniFile : TIniFile; // Archivo de Inicio .INI   // USES IniFiles, // Manejo de Archivos .ini
begin
  Ruta := ExtractFileDir(ParamStr(0));   // Ruta desde donde se ejecuta el archivo Principal de la aplicación
  AIniFile := TIniFile.Create(Ruta + '\Inicio.ini');   // se abre o se crea el archivo de inicio del sistema
  AIniFile.WriteString('Configuracion', 'udl', ComboBox.Items[ComboBox.ItemIndex]);
  AIniFile.Free; // Cierra el Archivo y libera el objeto.
end;

procedure TForm.FormShow(Sender: TObject); // Procedimiento del Evento OnShow que se debe llamar cuando se carga la Forma 
  var
    AIniFile : TIniFile;
    Inicio : string;
    DbSeleccionada : String;
begin
  // Archivo de inicio de la aplicación
  Inicio := ExtractFileDir(ParamStr(0)) + '\Inicio.ini';
  AIniFile := TIniFile.Create(Inicio);
  DbSeleccionada := AIniFile.ReadString('Configuracion','udl','db1.udl');
  Carga_Items_DB(DbSeleccionada);
  AIniFile.Free;
  UdlStr := ExtractFileDir(ParamStr(0)) + '\' + DbSeleccionada;
  DataModule.DB.Connected := False;  // se desconecta de la Base de Datos // Control TADOConnection dentro de un Data Module
  DataModule.DB.Close; // se cierra la BD
  DataModule.DB.ConnectionString := 'FILE NAME=' + UdlStr; // se indica la cadena de conexión con el archivo de configuración de la BD
  DataModule.DB.Open; // Se abre nuevamente la BD
end;

-----------------------------------------------
Con colaboración podemos lograr cosas grandes.
Responder Con Cita
  #9  
Antiguo 08-07-2007
FelipeDiaz FelipeDiaz is offline
Miembro
 
Registrado: may 2007
Posts: 75
Poder: 18
FelipeDiaz Va por buen camino
Post Uso de los archivos .ini

Muchas gracias a todos los que han respondido, A Delphius, a "Mie..." y a Juanramones.

Vi llas respeustas, saque tiempo para estudiarlas y comprendi el uso de las instrucciones como tal.

Segun comprendi ..es algo asi como un archivo texto o plano (extencion .ini)dodne la informacion de guarda y se organiza por secciones, y de esta misma manerta se debe leer.

Se me vienen ahora dos nuevas inquietudes.

1. Que ventaja tiene esta forma de implementar con archivo .ini el procedimiento que mencione al principio (osea que el usuario cambie en modo ejecucion la BD que quiera trabajar). comparado con el uso de una BD pequeña donde se tenga la misma informacion que estamos guardando en los archivos .ini, algo asi como una BD con las rutas y datos de configuracion..... para el uso de las BD dodne esta la informacion que el intersa al usuario. No seria mas conveniente por cuestiones de seguridad esta forma, dado que el .ini puede ser abierto y alterado facilmente con Notepad.?

2. Agradezco el ejemplo de juanramones... pero me confundo al hacerle seguimiento a la logica.

Segun alcanzo a percibir.... Al abrir el form principal, se extrae del archivo Inicio la linea udl=db1.udl.

Luego (y aqui es doden me pierdo..) se llena un comobobox con la lista de las BD contenida en el archivo Bases.ini y se compara con la la mencionada anteriormente..... y se ordena al Comobobox que muestre esta ultima.

Imagino que aqui actuara el usuario, cambiara la opcion del combobox y grabara al hacer click en el boton.

Quedado la nueva seleccion guardada en inicio.ini.

Mi Inquietud es.... No es en este momento donde se debe ejecutar la conexion con la BD. Porque al parecer en el codigo del FormShow se realiza la conexion con la primera BD que se leyó, sin esperar que el usuario elija alguna.

Bueno tal ves lo entendi mal yo.... pero reitero mi pregunta Numero 1. Este tipo de informacion de rutas de BD, no se podria administrar desde otra BD?

Gracias, y disculpenme en la demora de la retroalimentacion.


Saludos.

FELIPEDIAZ
Responder Con Cita
  #10  
Antiguo 08-07-2007
[juanramones] juanramones is offline
Miembro Premium
 
Registrado: ene 2007
Posts: 6
Poder: 0
juanramones Va por buen camino
Thumbs up Archivos .ini y Selección de Bases de Datos con TADO Controls

Felipe,
estás en lo correcto con que la Conexión debe volver a realizarse cuando el usuario haga click en el Botón y por lo que veo Usted comprendió perfectamente la lógica del código.

La idea del ejemplo es dar una orientación en el manejo del archivo .ini y que lo pudiera luego personalizar de acuerdo con la pregunta realizada.

De igual manera estoy de acuerdo con que es más seguro trabajar con una Base de Datos Pequeña para seleccionar las conexiones a las Bases de Datos en Producción, por cuestiones de seguridad, dado que como lo menciona, cualquiera puede abrir el archivo .ini y conocer donde tiene ubicadas dichas bases de datos.

Pero también creo que si no existe problema con la seguridad, el uso de archivos .ini es mucho más sencillo y funcional dentro de una aplicación.

________________________________________
Con colaboración podemos lograr cosas grandes.
Responder Con Cita
  #11  
Antiguo 08-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Quisiera agregar a lo dicho por juanramones que el empleo de archivos .ini es muy útil cuando se deben obtener datos por default.
Cuando un archivo ini pierde algún dato, o alguna sección es posible restaurar aquellos valores valiendose del tercer parámetro, seteando un valor por defecto.

Además, ante la perdida de un archivo ini, se crea automáticamente. Y podemos aprovechar, como dije antes, este momento para indicar valores por defecto que pueden ser útiles.

De una y otra manera podemos llegar a tener una cierta consistencia de información.

Es cierto que con el block de notas podemos editar el contenido. Pero como dijo juanramones lo que debes mantener con mayor seguridad conviene usar BD, pero para información que facilmente puede ser "recuperable" no vale el ezfuerzo en emplear una base de datos.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #12  
Antiguo 09-07-2007
FelipeDiaz FelipeDiaz is offline
Miembro
 
Registrado: may 2007
Posts: 75
Poder: 18
FelipeDiaz Va por buen camino
Uso de archivos .ini

Gracias nuevamente juanramones y delphius por la aclaracion... creo que utilizaré los archivos .ini, pues en el fondo creo que no tendre problema con la seguridad, pero queria resolver esa inquietud, asi estoy mas tranquilo.

Bueno me disculpan nuevamente.... quisera confirmar algunas cosas.
1. Cuando juanramones utiliza .. udl=db1.udl, ... ¿ Udl ... Haria las veces de un alias para el usuario y db1.udl se reemplazaria por el nombre del Archivo (*Mdb, en acces por ejemplo) o el directorio ( como en paradox o Firebird) ?
o cuando te refieres a archivos Udl .....son algunos archivos de un tipo ya predefinidos? como por decir *ini o .Jpg o .Xls. En otras palabras no se si utilizaste una palabra por dar ejemplo o concluyo que ignoro (o ignoraba) la existencia de archivos .udl y para que se utilizan.

Bueno, la experiencia que he tenido durante un buen tiempo es desarrollando aplicaciones con delphi y paradox y estoy muy interesado en realizar una mas robusta en Firebird (ya lo he estado comprendiendo), pero esta parte de utilizar .ini no la conocia y mi interes es dar la opcion al usuario de escoger la bases de datos que desee trabajar. A proposito ¿Ven algun inconveniente al implementar esto con firenbird?

2. Algo que solo quiero confirmar.... Cuando tengo por decirlo
ud1=db1.udl
ud2=db2.udl
ud3=db3.udl .. y asi sucesivamente.

Supongamos 6 items, ¿podria concluir...
a. Para agregar un item nuevo, solo utilizo la instruccion de escribir con los neuvos valores sin preocuparme por el orden? es decir el se agrega de ultimo?

b. Esto.. sonara un poco obvio... si por casualidad un usuario piensa crear un nuevo item, pero utiliza una variable ud(cuaqluiera, ejm ud1) que ya ha sido usada ...... simplemente se reescribe..... es decir que solo por codigo tendria yo que controlar el hecho que no altere una ruta pensado crear otra.


3. Esta pregunta es para Delphius, (obtener datos por default).
Cuando dices "ante la perdida de un archivo ini, se crea automáticamente" o "información que facilmente puede ser "recuperable"". No se como interpretarlo, me asaltan inquietudes...
¿Quien se encarga de crear ... o de que forma se crea automaticamente el dato perdido?

Es decir, la aplicacion que desarrolle...dependera de los datos que contiene los archivos .ini para que pueda correr correctamente. es como el indice que el usuario utilizara para trabajar un grupo de informacion (la BD seleccionada).

Si se pierde un dato.. ya sea que alguien abrio el archivo con notepad, y lo borró. o borraron el archivo completo.

Para formular bien la pregunta.... lo haré con un ejemplo (disculpenme si parece algo absurdo)....
Ejmp. Entro al explorador de Windows y busco cuaqluier arcihivo .ini, supongamos que lo borro... le doy eliminar. Luego reinicio el PC. y trato de buscar el archivo..... ¿El archivo aparecerá nuevamente?

O si borro un dato? como identificaría el archivo .ini que se borro a conciencia o que fue un error?

Tal ves desconozco alguna propiedad de los archivos .ini, en la ayuda de delphi hacen enfasis en la froma de maniupularlos desde delphi, no se dodne hay mas tema para compreder esto de la recuperacion..

Por ultimo si me puedes ayudar ya sea con saber donde encuentro mas detalles de estos archivos.

Me da algo de pena seguir preguntando pero cuando dices "es posible restaurar aquellos valores valiendose del tercer parámetro, seteando un valor por defecto"
Que es ese tercer parametro y que es Setear?
(creo que setear es adjudicar un valor auna variable, y no se es como ayuda a conseguir lo anterior )

Bueno, deseo felicitar y agradecer a todos los foristas nuevamente.... si el nivel de atencion y respuesta que he recibido aqui, fuese el que utilizaran las instituciones en general.... el mundo seria diferente.

De verdad muchas gracias... aunque no los conozco personalmente, la ayuda que he recibido de ustedes me motiva a seguir aprendiendo, pues no me siento solo y se que este efecto se multiplica en otros compañeros.

A todos los colaboradores, Mis respetos y admiracion por su don de compartir y ayudar a otros.
Responder Con Cita
  #13  
Antiguo 09-07-2007
Avatar de NestorN
NestorN NestorN is offline
Miembro
 
Registrado: ago 2005
Ubicación: Argentina
Posts: 15
Poder: 0
NestorN Va por buen camino
Consulta

Hola, yo tengo una duda son respecto a ini. Tengo una aplicación conectando con un adoconection una DB con Microsof Sql Server. Lo que yo quiero es que al instalar mi aplicación en otra pc mediante ini pueda recuperar el alias de la DB de la otra pc que tenga el sql server.
Si alguien tiene alguna idea Muchas Gracias de ante mano.
Responder Con Cita
  #14  
Antiguo 09-07-2007
[juanramones] juanramones is offline
Miembro Premium
 
Registrado: ene 2007
Posts: 6
Poder: 0
juanramones Va por buen camino
Cool

Para la Primera pregunta:

Cita:
Empezado por FelipeDiaz
1. Cuando juanramones utiliza .. udl=db1.udl, ... ¿ Udl ... Haria las veces de un alias para el usuario y db1.udl se reemplazaria por el nombre del Archivo (*Mdb, en acces por ejemplo) o el directorio ( como en paradox o Firebird) ?
o cuando te refieres a archivos Udl .....son algunos archivos de un tipo ya predefinidos? como por decir *ini o .Jpg o .Xls. En otras palabras no se si utilizaste una palabra por dar ejemplo o concluyo que ignoro (o ignoraba) la existencia de archivos .udl y para que se utilizan.
La respuesta:

Los archivos con extensión .udl son archivos de configuración de Base de Datos (Microsoft Data Link) que se pueden utilizar en los objetos de conexión a BD de Delphi, como TADOConnection, en la propiedad ConnectionString en el Object Inspector aparece la opción al presionar el botón elipsis <...>

Ejemplo de un archivo .udl (podría ser db1.udl)

Código:
[oledb]
; Everything after this line is an OLE DB initstring
Data Source=C:\BD\db.mdb;
Provider=Microsoft.Jet.OLEDB.4.0;
Password="";
User ID=Admin;
Mode=Share Deny None;
Extended Properties="";
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Database Password="";
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False;
También al darle doble click al archivo .udl, se abre la utilidad de edición del MS. Importante: los archivos .udl inician con una secuencia de caracteres Unicode especial #$FEFF; por lo que en otras secciones del Foro cuando encuentres más descripciones sobre los archivos .udl vas a notar ejemplos con esa cadena al inicio.

En los archivos de ejemplo de Delphi puede encontrar el siguiente:
C:\Program Files\Common Files\System\Ole DB\Data Links\DBDEMOS.udl


En cuanto a lo de los motores de BD que mencionas (Firebird, Paradox, MS Jet), el código inicial está pensado para el MS Jet, pero creo que para los demás sería trabajar con las cadenas de conexión propias o con ODBC.

Para la Segunda pregunta:

Cita:
Empezado por FelipeDiaz

a. Para agregar un item nuevo, solo utilizo la instruccion de escribir con los neuvos valores sin preocuparme por el orden? es decir el se agrega de ultimo?

b. Esto.. sonara un poco obvio... si por casualidad un usuario piensa crear un nuevo item, pero utiliza una variable ud(cuaqluiera, ejm ud1) que ya ha sido usada ...... simplemente se reescribe..... es decir que solo por codigo tendria yo que controlar el hecho que no altere una ruta pensado crear otra.
La respuesta:

a. Si. Para agregar un ítem nuevo basta con la instrucción
Código Delphi [-]
AIniFile.WriteString('Configuracion', 'udl', ComboBox.Items[ComboBox.ItemIndex]);
y se agrega al final de la sección que se esté indicando.

b. Si se reescribe. Ej:
Código Delphi [-]
AIniFile.WriteString('Configuracion', 'VAR1', 'valor 1');
AIniFile.WriteString('Configuracion', 'VAR1', 'valor 2');

El valor de la variable VAR1 en las dos instrucciones del ejemplo quedaría en el último, osea 'valor 2'

________________________________________
Con colaboración podemos lograr cosas grandes.
Responder Con Cita
  #15  
Antiguo 09-07-2007
[juanramones] juanramones is offline
Miembro Premium
 
Registrado: ene 2007
Posts: 6
Poder: 0
juanramones Va por buen camino
Archivo .ini con SQL Server

Para la Pregunta:
Cita:
Empezado por NestorN
Hola, yo tengo una duda son respecto a ini. Tengo una aplicación conectando con un adoconection una DB con Microsof Sql Server. Lo que yo quiero es que al instalar mi aplicación en otra pc mediante ini pueda recuperar el alias de la DB de la otra pc que tenga el sql server.
Si alguien tiene alguna idea Muchas Gracias de ante mano.
La Respuesta:

Creo que se puede solucionar utilizando una carpeta compartida de solo lectura en el servidor de SQL Server y así compartir o el archivo .ini o el archivo de configuración de la conexión .dsn.

________________________________________
Con colaboración podemos lograr cosas grandes.
Responder Con Cita
  #16  
Antiguo 09-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por FelipeDiaz
3. Esta pregunta es para Delphius, (obtener datos por default).
Cuando dices "ante la perdida de un archivo ini, se crea automáticamente" o "información que facilmente puede ser "recuperable"". No se como interpretarlo, me asaltan inquietudes...
¿Quien se encarga de crear ... o de que forma se crea automaticamente el dato perdido?

Es decir, la aplicacion que desarrolle...dependera de los datos que contiene los archivos .ini para que pueda correr correctamente. es como el indice que el usuario utilizara para trabajar un grupo de informacion (la BD seleccionada).

Si se pierde un dato.. ya sea que alguien abrio el archivo con notepad, y lo borró. o borraron el archivo completo.

Para formular bien la pregunta.... lo haré con un ejemplo (disculpenme si parece algo absurdo)....
Ejmp. Entro al explorador de Windows y busco cuaqluier arcihivo .ini, supongamos que lo borro... le doy eliminar. Luego reinicio el PC. y trato de buscar el archivo..... ¿El archivo aparecerá nuevamente?
Una ventaja que tiene esta clase (TiniFile) es que en forma automática crea dicho archivo en caso de que no exista. Por tanto, cuando se ejecute o se invoque la orden Create() lo que hará es buscar dicho archivo, si falla. Lo crea.
Inicialmente estará vacio, pero es aquí donde entra lo de parametros por defecto.

Cita:
Empezado por FelipeDiaz
Me da algo de pena seguir preguntando pero cuando dices "es posible restaurar aquellos valores valiendose del tercer parámetro, seteando un valor por defecto"
Que es ese tercer parametro y que es Setear?
Como abrás notado, en los eventos ReadXXX y WriteXXX se pasan tres parámetros: El primero la sección, en el segundo la variable a la cual asociar el valor y en el tercero el valor.
El tercer parámetro sirve para el caso eventual de que no exista la variable o la sección. Este parámetro actua como un valor por defecto. Por ejemplo tu haces:

Dato := ini.ReadInteger('UNA SECCION','Una variable',45);

En Dato se colocará el valor asociado a "Una variable". En caso de que la lectura falle, quedará registrado en Dato el valor 45. Y una vez realizado esto, en forma automática (estamos hablando del caso de fallo) la clase creará ya sea la sección y/o la variable con dicho valor por defecto.


Si se emplean los write y read en forma apropiada, se puede conseguir dejar al archivo ini en un estado de "por defecto". Que si bien no es la condición que ha establecido el usuario, se consigue volver al estado inicial de cuando se creo el archivo por primera vez. A esto me refiero cuando dije "facilmente recuperable".

Lo obvio es que el valor por defecto a asignar corresponda a un valor permitido y que pueda ser empleado en forma posterior. Varios sistemas emplean este mecanismo.... inclusive incorporan un botón que dice "Predeterminado" o "Default" que lo que hace es cambiar el valor de algunas o todas la variables por el valor default con el que el sistema inicialmente venía.

Espero que se entienda la idea.

Si quieres saber mas sobre ini, busca en los foros porque el tema se ha tratado en reiteradas oportunidades. Te sugiero también que revises la ayuda que viene con Delphi.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #17  
Antiguo 09-07-2007
FelipeDiaz FelipeDiaz is offline
Miembro
 
Registrado: may 2007
Posts: 75
Poder: 18
FelipeDiaz Va por buen camino
Smile Archivos .ini

Bueno, creo que ya me siento con orientacion de hacia donde debo seguir.
Gracias nuevamente... espero encontrarlos en un nuevo hilo.

Saludos.
__________________
El Calentamiento Global acabara con la tierra. No mas Barreras, No mas Guerras, No mas discrimiancion, No mas violencia, No mas indiferencia, No mas terrorismo, No mas secuestros. !Valoremos la vida!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como utilizar TExcelApplication Jose Roman OOP 17 19-07-2021 15:48:41
¿Debo utilizar un archivo de recurso (.RES)? Jome Varios 2 18-06-2006 08:21:01
como Utilizar una DLL de VB KaTo Varios 0 30-05-2004 19:01:30
Como utilizar un DCR y PAS andrestsas Varios 1 26-10-2003 19:31:58
como utilizar sql plus fcran Oracle 2 10-09-2003 02:44:01


La franja horaria es GMT +2. Ahora son las 13:16:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi