![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() 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. |
#2
|
||||
|
||||
Hola,
Supongo que se refieren a almacenar datos en el .ini (esa es su función ![]() Slaudos. |
#3
|
|||
|
|||
![]() 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. |
#4
|
||||
|
||||
Hola FelipeDiaz,
Estas son tus dudas... Cita:
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, |
#5
|
||||
|
||||
Hola,
Cita:
![]() |
#6
|
|||
|
|||
1 ejemplo
teniendo el siguiente fichero ini
interactuar con el ini
escribir en el ini
leer del ini
saludos |
#7
|
||||
|
||||
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|| |
#8
|
|||
|
|||
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 Código:
[BD] udl1=db1.udl udl2=db2.udl udl3=db3.udl udl4=db4.udl 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
----------------------------------------------- Con colaboración podemos lograr cosas grandes. |
#9
|
|||
|
|||
![]() 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 |
#10
|
|||
|
|||
![]() 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. |
#11
|
||||
|
||||
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, |
#12
|
|||
|
|||
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. |
#13
|
||||
|
||||
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. |
#14
|
|||
|
|||
![]() Para la Primera pregunta:
Cita:
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; 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:
a. Si. Para agregar un ítem nuevo basta con la instrucción y se agrega al final de la sección que se esté indicando. b. Si se reescribe. Ej:
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. |
#15
|
|||
|
|||
Archivo .ini con SQL Server
Para la Pregunta:
Cita:
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. |
#16
|
||||
|
||||
Cita:
Inicialmente estará vacio, pero es aquí donde entra lo de parametros por defecto. Cita:
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, |
#17
|
|||
|
|||
![]() 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! |
![]() |
|
|
![]() |
||||
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 |
![]() |
|