Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Archivo .ini (https://www.clubdelphi.com/foros/showthread.php?t=47576)

Waldo 31-08-2007 20:55:11

Archivo .ini
 
Hola Caral, pues con gusto yo te puedo enviar el sistema pero realmente dime que es lo que ocupas yo puedo pasarte todo completo todo junto mide aproximadamente 23 megas, con base de datos de prueba

jhonny 31-08-2007 20:57:11

Cita:

Empezado por Waldo (Mensaje 227440)
Hola Caral, pues con gusto yo te puedo enviar el sistema pero realmente dime que es lo que ocupas yo puedo pasarte todo completo todo junto mide aproximadamente 23 megas, con base de datos de prueba

:confused::confused::confused:

ArdiIIa 31-08-2007 20:59:10

Un fichero INI de 23 Megas... ??
Que barbaridad.

Caral 31-08-2007 20:59:23

Hola jhonny
Estoy tratando de ayudar a Waldo con un problema que tiene de conexion con base de datos, esto via mensajes, le sugerí, que lo hiciera aqui, no te extrañes.
Saludos

egostar 31-08-2007 21:00:19

:confused::confused::confused:

Amigo Carlos, hay algo que desconocemos, digo, ya que estamos en el tema de las limitaciones........:rolleyes:

Salud OS

Edito.... Gracias Carlos, me quitas esa pesada carga.....

Caral 31-08-2007 21:01:42

Hola Waldo
Primero tratemos de verificar lo que hay en el datamodule, coloca en este el codigo o el archivo zip.
Tienes que: ir a avanzado y gestionar archivos adjuntos.
Saludos

maeyanes 31-08-2007 21:01:53

De inicio hubiera descrito mejor su problema, así entre todos podemos intentar ayudarle...



Saludos...

jhonny 31-08-2007 21:02:48

Cita:

Empezado por Caral (Mensaje 227445)
Hola jhonny
Estoy tratando de ayudar a Waldo con un problema que tiene de conexion con base de datos, esto via mensajes, le sugerí, que lo hiciera aqui, no te extrañes.
Saludos

Ahhh, :D, ya veo.

Waldo 31-08-2007 21:05:03

No entiendo
 
creo que me perdi con tantos mensajes en el hilo.....

haver que es loq ue necesitas absolutamente todo el sistema?
y como lo subo?

maeyanes 31-08-2007 21:07:00

Hola Waldo... y si describes cual es tu problema?


Saludos...

Caral 31-08-2007 21:11:36

Hola
Lo voy a describir yo, ya que lo conozco.
Quiere hacer un archivo .ini, para hacer la conexion con la base de datos access desde la red.
Le he comentado que esto se hace en el datamodule que es el que contiene el adoconnection.
Saludos

Waldo 31-08-2007 21:12:12

aui va
 
1 Archivos Adjunto(s)
pues lo que envio es el .pas del modulo de datos

Caral 31-08-2007 22:52:15

Hola
Bueno, ya he modificado el datamodule
Lo que faltaria seria ver como se localiza la direccion que estas usando, no entiendo muy bien la razon, por eso no la puse, da la impresion que busca un directorio, esto no seria, creo, dificil.
He colocado un archivo ini ya terminado con una ruta que tendras que modificar y uno leeme, para explicar un poco como funciona.
Acuerdate que la ruta es donde esta la base de datos en este caso el path.
Bueno ya me contaras.
Saludos

Waldo 31-08-2007 23:22:54

ok
 
Ok ya tengo el archivo aqui pero dime ahora que hago con el, antes que nada quiero hacerlo en modo de prueba, tal ves utilizare una base de datos de prueba tal y como lo hago para la programacion, que pasos hay que seguir?

primero copiar la aplicacion a la pc remota?

Caral 31-08-2007 23:28:37

Hola
Vamos por pasos:
Coloca el pass del datamodule en el proyecto, lo guardas.
Coloca el archivo BDatos.ini en el directorio donde este el proyecto.
Abre el archivo y le cambias la direccion 'path' a la direccion donde este la base de datos.
Guarda el proyecto y lo ejecutas, en tu maquina, primero empezamos aqui.
me cuentas como te fue.
Saludos

Waldo 31-08-2007 23:36:26

bien
 
ok
antes que nada hice un respaldo general. (lo documente para saber en que fecha empece hacer esto) si sucede algo mal poderme regresar como estaba jejeje, asi que le voy a dar sin miedo


cabe mencionar que esto no me alterara el sistema que esta funcionando en la empresa puesto que esta en otro directorio y trabaja normal. bien asi que todo bien


loq ue hice pues, es remplazar el .pas por el que me diste tu
y copie ademas el archivo ini al la carpeta de codigo dodne esta el proyecto


pero no he cmabiado el Paht puesto que este sera variable segun la empresa que se este manejando.


presisamente este es el punto siguiente, el paht cambiara segun la empresa que se esta manejando, (cuando abro la empresa hago un procedimiento especial para detectar ese path) tu cres que es conveniente que
cuando se crea una empresa nueva se cree automaticamente el .INI para cada empresa y asi guarde la direccion?...


Para las empresas existentes (solo son 2) TENDRIA QUE HACERLE SU .INI MAnualmente para poder actualizar
bueno haver si no te hice bolas, por el momento eso haver que me sugieres

Caral 31-08-2007 23:41:27

Hola
Son dos empresas de momento, con dos bases de datos, una en cada directorio, dos programas, por que no dos ini?
No creo que sea muy complicado, asi no se necesita la direccion, simplemente se abre el ini se cambia y se corre el programa.
Saludos

Waldo 31-08-2007 23:43:25

bien
 
bueno hice loq ue me dijistes ahora que hay que hacer?

Caral 31-08-2007 23:46:58

Hola
Si cambiaste la direccion en el ini, entonces:
Corres el programa, este tiene que buscar el ini, definir donde esta la base de datos, volver al programa y correr.
Lo hace?
Saludos

Waldo 31-08-2007 23:53:31

Algo mal
 
No esta bien algo, es que intenta conectar a la base de datos cuando se crea el datamodule, pero esto para mi sistema es erroneo, por que en realidad primero debo esperar a que el usuario me diga con que empresa trabajar. no se si me entiendas en este punto?.

entonces la idea seria:

primero dejar que corra el sistema y cuando abra la empresa ahi cuando ahcer la coneccion lellendo el .ini correspondiente a la empresa abierta?, otro gran problema recuerda que son dos bases de datos
1. bases de datos general (se abre a iniciar el sistema)ahi contiene los nombres d elas empresas la cual selecciono para poder trabajar con ella
2.- esta base de datos es el de la empresa (yo le llamo base de dados de datos).

Caral 01-09-2007 00:01:07

Hola
Segun entiendo:
Tienes una base de datos en la que tienes los nombres de las empresas
Al iniciar el programa primero busca esta base de datos , se selecciona la empresa y se canecta al segundo datamodule que contiene las base de datos o algo asi.
No lo entiendo bien
Saludos

Waldo 01-09-2007 00:04:29

Correcto
 
correcto

Te explico


el sistema abre la base de datos que le nombro "General"

me parece el listado de empresa lo cual el usuario selecciona con cual trabajar
una vez seleccionado, el sistema abre la BD que le llamo "Datos" que es el modulodedatos que te envie.

es correcto tal y como tu dices por eso creo que el inicio de esto es por otro lado jejeje, nos era conveniente que te envie el sistema completo y lo manejaras y observaras como funciona el arranque?

Caral 01-09-2007 00:06:39

Hola
Enviamelo, a ver que hago.
Saludos

Waldo 01-09-2007 00:18:01

Hola
 
Ijola creoq ue no puedo enviarlo ta pesadito toy tratando de enviarlo por gmail

Waldo 01-09-2007 00:22:17

no pude :(
 
no creo no pude, nos e que hacer

Caral 01-09-2007 00:26:49

Hola
No lo puedes enviar en partes.
1-base de datos
2-varios forms
3- etc.
todos en zip.
No se, me imagino, que aqui lo puedo unir.
Saludos

Waldo 01-09-2007 00:59:14

hola
 
logre subir 1 de 2
saludos

Caral 01-09-2007 22:38:48

Hola
Con lo que voy a comentar no pretendo ser en lo mas minimo un conocedor o programador, es solo mi vision de tu programa, que para mi es excelente, recuerda, soy novato en esto.
Voy a tratar de contestar tu pregunta y hacerte ver mas o menos como funciona el programa, ademas lo que creo que esta fallando, el por que esta lento.
Tu pregunta:
Cita:

1.- Que es el INI
2.- Para que sirve
3.- Como funciona
4.- Y que beneficio obtendo en implementarlo en el sistema.
1- es un archivo texto
2- se usa para muchos propositos, en este caso para que contenga una direccion y sea leida por el programa, sin tener que modificar este, si se quiere cambiar la dirreccion o ubicación de la base de datos solo se cambia en el ini, no en el grograma, en otras palabras facilita las cosas.
3- En este caso funciona como conector con la base de datos.
4- el beneficio esta en que no se tiene que modificar el programa cada vez que se cambie la base de datos de ubicación, con solo cambiarla en el ini, este la encontrara.
Por ejemplo el programa, como en tu caso, necesita que la base de datos este en el mismo directorio y tienes que estar indicando constantemente la ubicacion de la base de datos, si se quiere cambiar el programa a otro ordenador, este no encontrara la base de datos y dara error, entonces no tienes la flexibilidad de mover, tanto el programa como la base de datos.
Como te comente, ya puede el ini, puede localizar las dos base de datos, empresas y datos, el problema esta en los bmp.
Que creo que esta fallando:
Cuando se habla de red, se esta pensando en transportar datos de un ordenador a otro.
No es lo mismo pasar texto que bmp o jpg, en este caso, pasas todo, constantemente.
Por eso sugerí que se colocara el programa en cada ordenador y la base de datos en un servidor, asi lo que viaja es la informacion, no todo, pero me encontre con estos bmp, que son el problema mas grande.
Como hace la conexion con la base de datos tu programa:
Código Delphi [-]
directorio:=ExtractFilePath(ParamStr(0));
g.GConeccion.Connected:=false;
g.GConeccion.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+directorio+'Base de datos\General\General.mdb;Persist Security Info=False';
g.GConeccion.Connected:=true;
directorio es exactamente el path donde este el programa, de ser otro, no funciona, en este caso busca la base de datos general en una ubicacion determinada, si es otra ubicacion, tendras que modificar el programa, lo mismo haces para la base de datos Datos.mdb, osea dos veces lo mismo y en cada proceso.
Como hace la conexion un ini:
Código Delphi [-]
procedure TG.DataModuleCreate(Sender: TObject);
Var BaseDeDatos, ConStr : String;
    IniFile: TIniFile;
begin
   // Obtiene la ruta y el nombre de la base de datos
   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'BDatos.ini');
   BasedeDatos := IniFile.ReadString('BD','Path','');
   If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
   ConStr := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
             'Data Source='+BaseDeDatos+';'+
             'Persist Security Info=False;'+
             'Jet OLEDB:Database Password=admin';
   GConeccion.ConnectionString := ConStr;
   GConeccion.Open;
El IniFile extrae el path del archivo ini en este caso BDatos.ini y busca la direccion o ubicacion de la base de datos, como en este caso son dos, se colocan dos opciones de path en el ini, asi:
Cita:

[BD]
Path="C:\Base de datos\General\General.MDB"
[BD1]
Path="C:\Base de datos\Datos\Datos.MDB"
[Logon]
Auto="No"
Login=""
Pass=""
Como ves es esencialmente lo mismo, solo que en tu caso, no puedes poner la base de datos en otro directorio que no sea el del programa.
Otro aspecto de la programacion, en cuanto a la conexion:

Cuando inicializas el proyecto, generas todo de una vez, esto siempre alenta el proceso, inevitablemete, en tu caso, generas todo esto:
Código Delphi [-]

  Application.Initialize;
  Application.Title := 'Administración';
  Application.CreateForm(TMenu_Principal, Menu_Principal);
  MENU_PRINCIPAL.Show;
  MENU_PRINCIPAL.Update;
  MENU_PRINCIPAL.PP.MaxValue:=69;
  Application.CreateForm(TG, G);
  MENU_PRINCIPAL.PP.Progress:=1;
  /////////////////////
  g.tapariencia.Open;
  MENU_PRINCIPAL.skin.SkinName:=g.tapariencia.Fields[0].Value;
  MENU_PRINCIPAL.skin.HueOffset:=g.tapariencia.Fields[1].Value;
  MENU_PRINCIPAL.skin.Saturation:=g.tapariencia.Fields[2].Value;
  menu_principal.Skin.UpdateSkin;
  g.tapariencia.close;
  /////////////////////

  MENU_PRINCIPAL.PP.Progress:=2;
  Application.CreateForm(TNueva_Empresa, Nueva_Empresa);
  Application.CreateForm(TCatalogo_Empresas, Catalogo_Empresas);
  MENU_PRINCIPAL.PP.Progress:=3;
  Application.CreateForm(TCatalogo_Clientes, Catalogo_Clientes);
  MENU_PRINCIPAL.PP.Progress:=4;
  Application.CreateForm(TM, M);
  MENU_PRINCIPAL.PP.Progress:=5;
  Application.CreateForm(TNuevo_Clientes, Nuevo_Clientes);
  MENU_PRINCIPAL.PP.Progress:=6;
  Application.CreateForm(TCatalogo_Proveedores, Catalogo_Proveedores);
  MENU_PRINCIPAL.PP.Progress:=7;
  Application.CreateForm(TNueva_Proveedor, Nueva_Proveedor);
  MENU_PRINCIPAL.PP.Progress:=8;
  Application.CreateForm(TCatalogo_Productos, Catalogo_Productos);
  MENU_PRINCIPAL.PP.Progress:=9;
  Application.CreateForm(TNueva_Producto, Nueva_Producto);
  MENU_PRINCIPAL.PP.Progress:=10;
  Application.CreateForm(TCatalogo_Cuentas, Catalogo_Cuentas);
  MENU_PRINCIPAL.PP.Progress:=11;
  Application.CreateForm(TNueva_Cuenta, Nueva_Cuenta);
  MENU_PRINCIPAL.PP.Progress:=12;
  Application.CreateForm(TNuevo_Cheque, Nuevo_Cheque);
  MENU_PRINCIPAL.PP.Progress:=13;
  Application.CreateForm(TSeleccionar_Cuenta, Seleccionar_Cuenta);
  MENU_PRINCIPAL.PP.Progress:=14;
  Application.CreateForm(TSeleccionar_Proveedor, Seleccionar_Proveedor);
  MENU_PRINCIPAL.PP.Progress:=15;
  Application.CreateForm(TEntregar_Cheques, Entregar_Cheques);
  MENU_PRINCIPAL.PP.Progress:=16;
  Application.CreateForm(TCancelar_Cheque, Cancelar_Cheque);
  MENU_PRINCIPAL.PP.Progress:=17;
  Application.CreateForm(TConciliar_Cheque, Conciliar_Cheque);
  MENU_PRINCIPAL.PP.Progress:=18;
  Application.CreateForm(TConsultar_Cheque, Consultar_Cheque);
  MENU_PRINCIPAL.PP.Progress:=19;
  Application.CreateForm(TConsultar_ChequesPeriodo, Consultar_ChequesPeriodo);
  MENU_PRINCIPAL.PP.Progress:=20;
  Application.CreateForm(TNuevo_Deposito, Nuevo_Deposito);
  MENU_PRINCIPAL.PP.Progress:=21;
  Application.CreateForm(TNueva_Factura, Nueva_Factura);
  MENU_PRINCIPAL.PP.Progress:=22;
  Application.CreateForm(TSeleccionar_Cliente, Seleccionar_Cliente);
  MENU_PRINCIPAL.PP.Progress:=23;
  Application.CreateForm(TSeleccionar_Producto, Seleccionar_Producto);
  MENU_PRINCIPAL.PP.Progress:=24;
  Application.CreateForm(TCheque_Entregar, Cheque_Entregar);
  MENU_PRINCIPAL.PP.Progress:=25;
  Application.CreateForm(TCatalogo_Familias, Catalogo_Familias);
  MENU_PRINCIPAL.PP.Progress:=26;
  Application.CreateForm(TApariencia, Apariencia);
  MENU_PRINCIPAL.PP.Progress:=27;
  Application.CreateForm(TNueva_Familia, Nueva_Familia);
  MENU_PRINCIPAL.PP.Progress:=28;
  Application.CreateForm(TCatalogo_Marcas, Catalogo_Marcas);
  MENU_PRINCIPAL.PP.Progress:=29;
  Application.CreateForm(TCatalogo_Unidades, Catalogo_Unidades);
  MENU_PRINCIPAL.PP.Progress:=30;
  Application.CreateForm(TNueva_Unidad, Nueva_Unidad);
  MENU_PRINCIPAL.PP.Progress:=31;
  Application.CreateForm(TNueva_Marca, Nueva_Marca);
  MENU_PRINCIPAL.PP.Progress:=32;
  Application.CreateForm(TSeleccionar_Familia, Seleccionar_Familia);
  MENU_PRINCIPAL.PP.Progress:=33;
  Application.CreateForm(TSeleccionar_Marca, Seleccionar_Marca);
  MENU_PRINCIPAL.PP.Progress:=34;
  Application.CreateForm(TSeleccionar_Unidad, Seleccionar_Unidad);
  MENU_PRINCIPAL.PP.Progress:=35;
  Application.CreateForm(TConsultar_ChequesTransito, Consultar_ChequesTransito);
  MENU_PRINCIPAL.PP.Progress:=36;
  Application.CreateForm(TSeleccionar_ChequeConciliar, Seleccionar_ChequeConciliar);
  MENU_PRINCIPAL.PP.Progress:=37;
  Application.CreateForm(TCancelar_Factura, Cancelar_Factura);
  MENU_PRINCIPAL.PP.Progress:=38;
  Application.CreateForm(TEliminar_Facturas, Eliminar_Facturas);
  MENU_PRINCIPAL.PP.Progress:=39;
  Application.CreateForm(TConsultar_Factura, Consultar_Factura);
  MENU_PRINCIPAL.PP.Progress:=40;
  Application.CreateForm(TCancelar_Deposito, Cancelar_Deposito);
  MENU_PRINCIPAL.PP.Progress:=41;
  Application.CreateForm(TBanco_Estado, Banco_Estado);
  MENU_PRINCIPAL.PP.Progress:=42;
  Application.CreateForm(TConsultar_DepositoPeriodo, Consultar_DepositoPeriodo);
  MENU_PRINCIPAL.PP.Progress:=43;
  Application.CreateForm(TConsultar_Deposito, Consultar_Deposito);
  MENU_PRINCIPAL.PP.Progress:=44;
  Application.CreateForm(TMovimientos_Banco, Movimientos_Banco);
  MENU_PRINCIPAL.PP.Progress:=45;
  Application.CreateForm(TGrafica_facturado, Grafica_facturado);
  MENU_PRINCIPAL.PP.Progress:=46;
  Application.CreateForm(TConsulta_FacturasCliente, Consulta_FacturasCliente);
  MENU_PRINCIPAL.PP.Progress:=47;
  Application.CreateForm(TConsulta_FacturasNoPagadas, Consulta_FacturasNoPagadas);
  MENU_PRINCIPAL.PP.Progress:=48;
  Application.CreateForm(TConsulta_FacturasPagadasFecha, Consulta_FacturasPagadasFecha);
  MENU_PRINCIPAL.PP.Progress:=49;
  Application.CreateForm(TConsulta_FacturasDelPeriodo, Consulta_FacturasDelPeriodo);
  MENU_PRINCIPAL.PP.Progress:=50;
  Application.CreateForm(TConsulta_PrecioProductoCliente, Consulta_PrecioProductoCliente);
  MENU_PRINCIPAL.PP.Progress:=51;
  Application.CreateForm(TEspecial_Cargo, Especial_Cargo);
  MENU_PRINCIPAL.PP.Progress:=52;
  Application.CreateForm(TEspecial_Abono, Especial_Abono);
  MENU_PRINCIPAL.PP.Progress:=53;
  Application.CreateForm(TConsulta_FacturasPagadasPeriodo, Consulta_FacturasPagadasPeriodo);
  MENU_PRINCIPAL.PP.Progress:=54;
  Application.CreateForm(TConsultar_ChequesTodos, Consultar_ChequesTodos);
  MENU_PRINCIPAL.PP.Progress:=55;
  Application.CreateForm(TConsultar_ChequesProveedor, Consultar_ChequesProveedor);
  MENU_PRINCIPAL.PP.Progress:=56;
  Application.CreateForm(TConsultar_DepositosTodos, Consultar_DepositosTodos);
  MENU_PRINCIPAL.PP.Progress:=57;
  Application.CreateForm(TEstado_Cuenta, Estado_Cuenta);
  MENU_PRINCIPAL.PP.Progress:=58;
  Application.CreateForm(TConsultar_FacturasNopagaPerido, Consultar_FacturasNopagaPerido);
  MENU_PRINCIPAL.PP.Progress:=59;
  Application.CreateForm(TConciliar_Deposito, Conciliar_Deposito);
  MENU_PRINCIPAL.PP.Progress:=60;
  Application.CreateForm(TSeleccionar_DepositoConciliar, Seleccionar_DepositoConciliar);
  MENU_PRINCIPAL.PP.Progress:=61;
  Application.CreateForm(TFolios_Cheques, Folios_Cheques);
  MENU_PRINCIPAL.PP.Progress:=62;
  Application.CreateForm(TFolios_Facura, Folios_Facura);
  MENU_PRINCIPAL.PP.Progress:=63;
  Application.CreateForm(TConsultar_Facturaspagadas, Consultar_Facturaspagadas);
  MENU_PRINCIPAL.PP.Progress:=64;
  Application.CreateForm(TMensaje, Mensaje);
  MENU_PRINCIPAL.PP.Progress:=65;
  Application.CreateForm(TEliminar_Cheque, Eliminar_Cheque);
  MENU_PRINCIPAL.PP.Progress:=66;
  Application.CreateForm(TConsultar_TodasFacturas, Consultar_TodasFacturas);
  MENU_PRINCIPAL.PP.Progress:=67;
  Application.CreateForm(TProgres, Progres);
  MENU_PRINCIPAL.PP.Progress:=68;
  Application.CreateForm(TConsultar_ChequesProveedorPeriodo, Consultar_ChequesProveedorPeriodo);
  MENU_PRINCIPAL.PP.Progress:=69;
  MENU_PRINCIPAL.PP.Progress:=0;
  MENU_PRINCIPAL.PP.Visible:=FALSE;
   MENU_PRINCIPAL.SIS.Caption:='Listo !';

  Application.Run;
Creas todos los form's, que esperas si no es lentitud.
Un arrenque optimo seria este:
Código Delphi [-]
  Application.Initialize;
  Application.CreateForm(TG, G);
  Application.CreateForm(TM, M);
  Application.CreateForm(TMenu_Principal, Menu_Principal);
  Application.Title := 'Administración';
 Application.Run;
Hay mucha diferencia, porque no lo puedes hacer asi, muy simple, haces el llamado del form asi:
Código Delphi [-]
Catalogo_Empresas.showmodal;
Cuando lo optimo es asi:
Código Delphi [-]
  Catalogo_Empresas:=TCatalogo_Empresas.Create(self);
   try
  Catalogo_Empresas.ShowModal;
   finally
  Catalogo_Empresas.Free;
   end;
Lo creo y destruyo cuando lo necesito, ahorrando recursos, memoria.
Me ha sido muy dificil entender el programa, sobre todo por no tener los componentes que usas para el mismo.
Recomendaciones:
1-Modifica el archivo inicial: Administracion.
2-Haz un llamado a los form, como endique.
de momento no me sinto capaz de modificar la conexion por ini, asi que te recomiendo que sigas igual, creo que con solo los dos cambios que propongo, la velocidad de acceso mejorara.
Espero te sirva esto.
saludos

Waldo 02-09-2007 00:02:04

Hola
 
Clarosimo Carlos, ahora entiendo perfectamente el por que utilizar los INI, y las imagenes que se arrastran cada ves que hago la consulta a un producto

wow, por lo que veo puedo hacer que el sistema sea un poco mas liviano para la computadora

loq ue s eme ocurre de momento es:

Primero, reparar eso de la creacin de las forms.
segundo, iniciar las base de datos utilizando archivos ini
y tercero que va ligado a la anterior puede haver dos opciones

1.- Copiar los bms a la maquina cliente (que creo que es la mas adecuada)
y utlizar algun tipo de actualizador de archivos de tal forma que arrastre los archivos del servidor a la amquina cliente. (considerando que las bmp NO SON IMPORTANTES PARA EL FUNCIONAMIENTO DEL SISTEMA es decir es opcional y cosa de diseño)



Te agradesco por todo


entonces lo primero que empezare hacer es:

reparar las form, una vez terminado es posible que te pida apoyo para hacer lo de los ini

aunque creo que ya entendi perfectamente


se como localizarlo y leerlo
y bien crearlo (la estructura es sencilla)

Lo que si me faltaria es:

COmo crear el ini para EMPRESAS NUEVAS..
pero bueno creo que ire por pasos te parece...
Agradezco todo y de momento me pondre hacer loq ue es primero sale?
y estamos en contacto

Caral 02-09-2007 00:18:17

Hola
Limpiar los from es rapido, de hecho ya lo tienes en parte en el project.
Para hacer un ini por codigo es igual que con uno texto, solo se cambia el argumento final asi:
Especificas las condiciones de este en un memo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   Ruta: String;
begin
  Ruta:= 'C:\BaseDatos\Datos\BDatos2.ini';
  Memo1.Lines.SaveToFile(Ruta);
 end;
Ya me iras contando como vas.
Saludos

Caral 02-09-2007 04:42:17

Hola
He trabajado un poco para hacer un ejemplo que se conecte a varias bases de datos con un solo archivo ini.
Este difiere en parte de tu programa, es lo que yo hubiera echo.
Por el tamaño del ejemplo, probablemente lo tenga que colocar en varios post, asi que revisa los que siguen, estaran los zip.
Este ejemplo hace lo siguiente:
Tiene Cuatro bases de datos:
1-Empresas, contiene el nombre de cada empresa
2-3-4- Empresas1,2,3., contiene la información respectiva de cada empresa, lógicamente diferente una de otra.
Que hace:
Primero se conecta con el datamodule, localiza la base de datos Empresas y abre el form empresas que las muestra, asi se puede escoger con que se quiere trabajar.
Dándole a aceptar, se abre el siguiente form principal con los datos de la empresa seleccionada y su logo o bmp.
Todo esto lo hace a través del archivo ini.
Este ejemplo contiene 8 zip.
ProgramaPrueba5, contiene todo el codigo
Empresas, la base de datos de las empresas.
Empresa1, 2, 3, respectivamente las base de datos de las empresas.
Francisco, Virtual, Pez, los BMP.
Como se instala:
Se coloca el proyecto (ProgramaPrueba5) en cualquier carpeta y de momento se crea una carpeta Bases de datos, en esta se incluyen todos los otros zip.
Quedando asi, por ejemplo:
C:\Programaprueba5
y despues:
C:\Programaprueba5\Bases de datos
Y dentro de esta cada una de las demas.
Hay crear una carpeta por empresa y tener en cuenta que logo es de que empresa, cada logo tendra que estar en la carpeta de cada empresa.
C:\Programaprueba5\Bases de datos\empresa1\ empresa1.mdb
C:\Programaprueba5\Bases de datos\empresa1\ Francisco.bmp
C:\Programaprueba5\Bases de datos\empresa2\ empresa2.mdb
C:\Programaprueba5\Bases de datos\empresa2\ Virtual.bmp
C:\Programaprueba5\Bases de datos\empresa3\ empresa3.mdb
C:\Programaprueba5\Bases de datos\empresa3\ Pez.bmp
He colocado dos archivos ini, con dos ubicaciones diferentes, esto para que entiendas el funcionamiento.
Revisa el codigo, esta muy sencillo, lo vas a entender facilmente.
Bueno voy a colocar los archivos, los siguientes estaran en el proximo post.
Saludos

Caral 02-09-2007 04:48:31

Hola
Una vez instalado todo, se ejecuta el programa en delphi para crear el ejecutable.
Cuando este el ejecutable listo, se puede cambiar la carpeta Bases de Datos a donde se quiera, incluso a otro ordenador, simplemente abres el archivo ini en este caso (DatosEmp.ini), se cambia la direccion del path y listo, por ejemplo:
Z:\Programaprueba5\Bases de datos
El ejecutable y el ini tiene que estar en la misma carpeta, es todo.
Bueno ojala este claro.
Van los archivos que faltan.
Saludos

Waldo 07-09-2007 18:48:05

Hola
 
Hola, Caral, mira aqui avisandote que por el momento he pausado la implementacion del INI primero, pues se atravesaron unas rachas de temblores, y para colmo nos asoto un huracan antier, pero yaestoy retomando esto, pero por lo pronto lo que hago es hacer bien las llamadas de las form como tu lo sugeriste, creo que me tomara un poquiito de tiempo ir modificando todo esto, pero cuando termine y verifique que todo el cambio esta bien , entonces intentare siguiendo tu ejemplo implementar lo del INI, estamos en contacto y pronto recibiras respuesta al de como me ha ido.


La franja horaria es GMT +2. Ahora son las 15:46:40.

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