Ir al contenido


Foto

Cómo ejecutar un archivo .ini


  • Por favor identifícate para responder
44 respuestas en este tema

#1 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 15 agosto 2011 - 12:18

saludos

Tengo un pequeño soft que desarrollé y funciona con una BD de SQL Server 2005 Express y esta conectada mediante un AdoConecction dentro de un Datamodule y sus respectivos Adotable para visutalizarlos en pantalla con los DBGrid y sus DataSour correspondientes..

el asunto es que en mi pc funciona bien, pero cuando llevo el software a otra pc lógicamente aparece el error de conexión...

entonces lo que necesito es poder usar el programa el cualquier pc, con solo copiar y pegar la carpeta completa donde esta el ejecutable, la BD y los demás archivos...

pero entonces me recomendaron que creara un archivo .ini para que lo ejecute al momento de iniciarse el programa para que el software se conecte con la BD...

el archivo ya lo hice, y dice esto:



delphi
  1. [BD]
  2. Path="C:\Clients2010\Mibase.MDF"
  3. [Logon]
  4. Auto="No"
  5. Login=""
  6. Pass=""



Lo que no se es cómo ejecutarlo como me recomendó un amigo de este foro.

qué debo hacer para que el software se conecte con la BD y pueda yo usarlo en cualquier PC ??

  • 0

#2 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 15 agosto 2011 - 12:30

Hola
En el evento oncreate del datamodule:


delphi
  1. implementation
  2.  
  3. uses IniFiles;




delphi
  1. procedure TDataModule1.DataModuleCreate(Sender: TObject);
  2. Var BaseDeDatos, ConStr : String;
  3.     IniFile: TIniFile;
  4. begin
  5.     IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'TUINI.ini');
  6.   BasedeDatos := IniFile.ReadString('BD','Path','');
  7. If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
  8.   ConStr := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
  9.             'Data Source='+BaseDeDatos+';'+
  10.             'Persist Security Info=False;'+
  11.             'Jet OLEDB:Database Password=admin';
  12. AdoConnection1.ConnectionString := ConStr;
  13.     AdoConnection1  .Open;


Saludos


  • 0

#3 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 15 agosto 2011 - 12:32

saludos

Tengo un pequeño soft que desarrollé y funciona con una BD de SQL Server 2005 Express y esta conectada mediante un AdoConecction dentro de un Datamodule y sus respectivos Adotable para visutalizarlos en pantalla con los DBGrid y sus DataSour correspondientes..

el asunto es que en mi pc funciona bien, pero cuando llevo el software a otra pc lógicamente aparece el error de conexión...

entonces lo que necesito es poder usar el programa el cualquier pc, con solo copiar y pegar la carpeta completa donde esta el ejecutable, la BD y los demás archivos...

pero entonces me recomendaron que creara un archivo .ini para que lo ejecute al momento de iniciarse el programa para que el software se conecte con la BD...

el archivo ya lo hice, y dice esto:



delphi
  1. [BD]
  2. Path="C:\Clients2010\Mibase.MDF"
  3. [Logon]
  4. Auto="No"
  5. Login=""
  6. Pass=""



Lo que no se es cómo ejecutarlo como me recomendó un amigo de este foro.

qué debo hacer para que el software se conecte con la BD y pueda yo usarlo en cualquier PC ??


De tu archivo .INI tomas los datos para ponerlos en tu conexión de base de datos..., no "se ejecuta". Éste artículo te puede ilustrar mejor...
  • 0

#4 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 15 agosto 2011 - 12:44

haré la prueba y te comento caral
  • 0

#5 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 15 agosto 2011 - 01:22

Pero.... y qué hago con la conexión que está en uso, la de AdoConeccion  la tengo que eliminar esa conexión antes de ejecutar el archivo .ini ??? :cheesy:
  • 0

#6 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 15 agosto 2011 - 01:40

Hola
No entiendo.
Saludos
  • 0

#7 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 15 agosto 2011 - 02:07

Pero.... y qué hago con la conexión que está en uso, la de AdoConeccion  la tengo que eliminar esa conexión antes de ejecutar el archivo .ini ??? :cheesy:


Hola, si/no depende... en modo de diseño es necesario, pero no creo que haya lío si en modo de ejecución se reescriba la conexión.


Saludos!
  • 0

#8 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 15 agosto 2011 - 02:19

Hola
No entiendo.
Saludos


saludos caral
me refiero a que la conexion la hice con el componente AdoConecction mediante la string

Archivos adjuntos


  • 0

#9 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 15 agosto 2011 - 02:26

Me dice este error:




*-)

Archivos adjuntos


  • 0

#10 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 15 agosto 2011 - 02:38

Hola
Tienes que colocar el uses forms, asi:


delphi
  1. implementation
  2.  
  3. uses IniFiles, Forms;


Con relacion a si tiene algo que ver el que la conexion la hicieras en el string y luego en el INI:
La respuesta es NO, al iniciar el datamodule la conexion es buscada por medio del INI.
Saludos
  • 0

#11 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 15 agosto 2011 - 05:06

Hola
Tienes que colocar el uses forms, asi:


delphi
  1. implementation
  2.  
  3. uses IniFiles, Forms;


Con relacion a si tiene algo que ver el que la conexion la hicieras en el string y luego en el INI:
La respuesta es NO, al iniciar el datamodule la conexion es buscada por medio del INI.
Saludos


ok entonces eso significa que cualquier conexion que exista se reescribe cuando se ejecute el fichero .ini ??
  • 0

#12 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 15 agosto 2011 - 05:52

Hola
Exacto.
Saludos
  • 0

#13 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 15 agosto 2011 - 10:55

ahora me da este error:

Archivos adjuntos


  • 0

#14 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 16 agosto 2011 - 06:10

Agrega la unidad Dialogs en clausula uses.


Saludos
  • 0

#15 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 16 agosto 2011 - 07:41

Agrega la unidad Dialogs en clausula uses.


Saludos


saludos muchachos, despues de agregar Dialogs en Uses, ahora me da este error:

La base de datos que quiero conectar es SQL Server 2005 Express

Archivos adjuntos


  • 0

#16 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 16 agosto 2011 - 11:15

Hola
El provider que he puesto en el ejemplo es para access, no si si es el mismo para sql server.
Compruebalo en el string del adoconnection.
Colocalo igual que ahi.
Saludos
  • 0

#17 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 16 agosto 2011 - 12:26

Hola
El provider que he puesto en el ejemplo es para access, no si si es el mismo para sql server.
Compruebalo en el string del adoconnection.
Colocalo igual que ahi.
Saludos


bueno, pues no se como se hace......
:sad:
soy novato
  • 0

#18 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 16 agosto 2011 - 12:44

Hola
Esta bien, pero aqui el novato soy yo. *-)
1- Colocate en el adoconnection.
2- Dale doble click. (veras una casilla que dice (Use Connection string).
3- Copia todo el contenido de lo que esta en ese edit, sera algo como esto:

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\FIBRESTER\bd\Prod.mdb;Mode=Share Deny None;Extended Properties="";Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=admin;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:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False

Como ves se presenta toda la informacion que se necesita para conectarse.
El archivo INI lo que hace es POSEER parte de la informacion que se requiere, en este caso la ruta (donde esta la BD).
Copialo en algun lado y compara lo que yo he hecho en el datamodule con la informacion que tiene el strin del adoconnection, veras que no esta toda, no se necesita.
Saludos


  • 0

#19 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 16 agosto 2011 - 12:45




delphi
  1. [BD]
  2. Path="C:\Clients2010\Mibase.MDF"





Es errónea la manera en que estás conectandote a Sql Server por lo siguiente:

1-  Las conexiones apuntan al servidor de base de datos, no a los archivos de datos.
2 - La conexión a la base de datos se realiza una vez conectado al servidor y la referencia es por el nombre de la base de datos nunca por el archivo.

Aclarados esos dos puntos la cadena de conexión en el componente TADOConnection debe quedar de la forma:

Provider=SQLNCLI;Data Source=.\INSTANCIASERVIDOR;Initial Catalog=NOMBREBASEDATOS;User Id=USUARIO;Password=PASSWORD;

Ahora bien. Puedes utilizar un archivo udl en lugar de un ini para armar tu cadena de conexión y almacenarla.

  • 0

#20 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 16 agosto 2011 - 12:50

Veré a ver que logro para hacer la conexión...lo que quiero es ejecutar el soft en cualquier pc.....probaré y les cuento
  • 0




IP.Board spam blocked by CleanTalk.