Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 01-06-2007
jlsc jlsc is offline
Miembro
 
Registrado: may 2007
Posts: 38
Poder: 0
jlsc Va por buen camino
Subo el archivo completo con el Exe mas 2 pantallazos con errores que generó en un equipo despues de haber instalado delphi sin compilar antes la aplicación, sino que ejecute un exe que ya estaba antes de instalar delphi.
Responder Con Cita
  #22  
Antiguo 01-06-2007
jlsc jlsc is offline
Miembro
 
Registrado: may 2007
Posts: 38
Poder: 0
jlsc Va por buen camino
perdón no puse la direccion. es esta aqui esta todo el programa con el ejecutable incluido.

http://www.megaupload.com/es/?d=937HDAVS
Responder Con Cita
  #23  
Antiguo 01-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo tengo Delphi (6 y 2007) instalado y me da el mismo Error "Stack Overflow" así que no va por ahí.
Las librerías que está utilizando son las siguientes:
advapi32.dll
comctl32.dll
comdlg32.dll
gdi32.dll
kernel32.dll
ole32.dll
oleaut32.dll
user32.dll
version.dll
winspool.drv

Habría que mirar las versiones en ambos sistemas a ver si puede venir por ahí el error.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #24  
Antiguo 01-06-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
[quote=Neftali]Joer!! sí que es buena suerte.
Mira que llevo utilizando MegaUpload tiempo y nunca había pasado nada y el día que le digo a alguien que lo use, va y está caput!!!

Juás! No te olvides q en el país de las maravillas suceden cosas inesperadas todo el tiempo. O bien es de esperarse cualquier cosa!(todo el tiempo)

jlsc:
No respondiste si estás compilando con Runtime Packages ???
Si tu .exe es muy pequeño seguramente si. Creo que instalar Delphi en los clientes no es la solución. Ahora si instalaste y te generan aún problemas. El tema viene por el lado de componentes que quizás tengas únicamente la versión Runtime, o sea que no tenés la versión full y no instalaste dichos componentes en otras PCs.

En cuanto a los .ini buscá por el lado de TIniFile en la ayuda que seguro encontrarás algo. El datamodule no es más que un módulo de datos(valga la redundancia), en el cual colocas todos tus componentes de accesos a datos de manera tal que no tengas que tener conexiones y tablas, querys repartidos por cada form de tu aplicación. Sino fijate el ejemplo MastData o algo así no lo recuerdo bien. Después agregas el modulo como si fuera un form en las units de cada formulario que lo necesite y listo. Para agregar File\New\DataModule con uno que crees es suficiente para toda tu aplicación.

Saludos y espero soluciones tu problema
Responder Con Cita
  #25  
Antiguo 01-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No parece que sea problema de packages; El EXE que has subido no necesita ningun package.
Es más, el EXE que has subido me falla (con el mismo error 'Stack overflow') y en cambio si lo compilo no me da ningun problema (salvo el del path de la BD) y se ejecuta correctamente.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #26  
Antiguo 01-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Bueno, parece que ya está.
El problema está:
(1) En que tienes en los DFM la ruta de la Base de Datos.
(2) En en diseño ya tienes la conexión (ADO) y todas las tablas abiertas.
(3) Que la Base de Datos sigue apuntando a un lugar incorrecto.

Tal vez por separado no dieran problemas, pero conjuntamente dan el error de Stack Overflow (no tengo claro topdavía porqué, pero es así).

Prueba.
Con el ejecutable que has enviado, si la Base de Datos se encuentra exactamente en: "C:\Base Reclamaciones\Reclamaciones.mdb" funciona perfectamente. Ese mismo ejecutable, si la BD no se encuentra en esa ubicación a error de "Stack overflow".

Yo remediaría los tres puntos comentados arriba.

NOTA: No deberías usar dos ADOConnection, con una basta. Tienes una en cada form. (Esto tambén lo cambiaría)

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #27  
Antiguo 01-06-2007
jlsc jlsc is offline
Miembro
 
Registrado: may 2007
Posts: 38
Poder: 0
jlsc Va por buen camino
Muchas gracias Neftali, lo modificaré como me lo indicas y luego te lo cuento Saludos.

Jorge
Responder Con Cita
  #28  
Antiguo 01-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Stack Overflow

Yo creo que el problema está claramente en el mal uso del ADOConnection, que a falta de uno, has puesto varios, en cada uno de los formularios.
Deberias utilizar uno solo, ya que con eso basta, puesto a que al utilizar más de uno, si en la PC donde ejecutas el programa, lo hace por defecto en modo exclusivo (segun este configurada esa PC en la red) no te va a permitir el acceso de otro ADOCommand, con lo que se llenará la pila de memoria con datos erráticos produciendo un desborde. Yo particularmente utilizo este tipo de procedimientos para hacer la conexión con TADOConnection, ya que uno siempre debe contemplar la posibilidad que la ruta hacia la base cambie por cualquier razón:

Código Delphi [-]
procedure TMain.FormCreate(Sender: TObject);
var root,base,dire:string;
begin
  root:=ExtractFilePath(Application.ExeName);
  //conexion a base de datos
  base:='tubase.mdb';
  dire:=root+'\'+base;
  if FileExists(dire)=True
    then begin
      ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+
      'User ID=Admin;' +
      'Data Source='+dire+';' +
      '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: Don''t Copy Locale on Compact=False;' +
      'Jet OLEDB:Compact Without Replica Repair=False;'  +
      'Jet OLEDB:SFP=False';
    end
    else begin
     //aqui haces algun tratamiento para elegir la base de datos si se encuentra en otro lugar o ha sido eliminada.
    end;
end;

De programar tantos microcontroladores, el stack overflow, es muy común que suceda, sobre todo cuando cualquier tipo de conector (en este caso el ADOConnection) no obtiene información concordante con la solicitada.
Creo que al menos, deberias probar el cambio.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;

Última edición por MaMu fecha: 01-06-2007 a las 15:47:49.
Responder Con Cita
  #29  
Antiguo 01-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Empecemos paso a paso:
1- abre el programa con delphi
2- entra a File, new, datamodule, esto creara un datamodule., guardalo en el proyecto.
3- coloca un adoconnection en el datamodule. (adoConnection1)
4- elimina los adoconnection de todos los forms.
5- abre el unit ReclasU y pon el datamodule de primero en la lista asi:
Código Delphi [-]
begin
  Application.Initialize;
  Application.CreateForm(TDataModule1, DataModule1);
  Application.CreateForm(TReclamacionesAcceso, ReclamacionesAcceso);
  Application.CreateForm(TReclamaciones, Reclamaciones);
  Application.Run;
end.
6- en cada adotable y adoquery, cambia la direccion del connection:
Código Delphi [-]
Datamodule1.ADOConnection1
7- dale dobleclick a la parte blanca del datamodule, esto generara el evento oncreate del datamodule, en ese evento coloca esto, copia y pegalo si quieres.
Código Delphi [-]
procedure TDataModule1.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)+'Recamaciones.ini'); // Reclamaciones, sera el nombre que se le de al 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';
   ADOConnection1.ConnectionString := ConStr;
   ADOConnection1.Open;
end;
Bien ya tenemos el arranque del programa, ahora cuando arranque abrira el datamodule primero y buscara un archivo ini, que se llama reclamaciones, este tiene que estar en el mismo directorio del exe.
Bueno ahora agamos el ini.
abre el bloc de notas y pon en el esto, tal y como esta:
Cita:
[BD]
Path="C:\Base Reclamaciones\Reclamaciones.mdb"
[Logon]
Auto="No"
Login=""
Pass=""
Ahora guardalo en el directorio donde esta el programa, con el nombre de Reclamaciones.
Bueno con esto el programa buscara el ini, lo leera y dira hey la base de datos esta en C:\Base Reclamaciones\, ha bueno entonces la voy a buscar, por supuesto si la base de datos esta en otra direccion pues hay que poner la direccion correcta en el ini y guardar los cambios.
Con esto si quieres mover la base de datos a cualquier directorio se podra hacer simplemente modificando la direccion en el ini y guardando los cambios, puede estar en c, d, f, z o donde se quiera el programa leera el ini y buscara la direccion.
Bueno depues de todo esto veras que hay varias cosas:
1- solo un adoconnection.
2- un datamodule, donde poner muchas cosas.
3- un archivo ini, que dirige al programa para que encuentre la base de datos.
4- una explicacion de un novato a otro.
Saludos
Responder Con Cita
  #30  
Antiguo 02-06-2007
jlsc jlsc is offline
Miembro
 
Registrado: may 2007
Posts: 38
Poder: 0
jlsc Va por buen camino
Muchas Gracias Caral y Mamu por su excelente aplicación, lo he entedido claramente, muchas gracias for su dedicación a este excelente foro y ayudarnos a los que estamos surmegidos en esta herramienta tan maravillosa que es Delphi. lo haré y ya contaré que tal me ha ido.

Muchas Gracias nuevamente.

Reciban mis saludos

novato jlsc
Responder Con Cita
  #31  
Antiguo 03-06-2007
FOURIER FOURIER is offline
Miembro
 
Registrado: dic 2005
Posts: 40
Poder: 0
FOURIER Va por buen camino
Hola amigo

Bueno mira te voy a decir como está el rollo; si sólo usas ACCESS y DELPHI, tu programa se cuelga al no encontrar la ruta dependiendo de las cosas que haga al inicio tu programa; si lo que tu quieres es que otras máquinas accedan a la BD que tienes en una máquina entonces para Access en tu Delphi donde usas el Componente ADOConnection ya ves que especificas la ruta de Accesso, bueno ahi vas a tener 2 alternativas una es que escribas
//dirip/rutadeacceso por ejemplo /192.168.2.7/C/Archivo.mdb
la otra es que especifiques //NomPC/rutaaccesp por ejemplo //Fourier/C/Archivo.mdb

ahora si estás usando algunos reportes que generas con el Quick Report o abres algún Cajón de dinero lo más seguro es que te falte el archivo dll enlas máquinas donde lo vayas a instalar que puede ser qtintf.dll ó qtintf70.dll ó qtintf90.dll dependiendo de la versión de Quick Report que Ocupas, bueno chavo espero te sirva esta información, suerte
Responder Con Cita
  #32  
Antiguo 03-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Caral
4- una explicacion de un novato a otro.
Yo no diría que es una explicación de novato, más bien diría que es la explicación de un maestro (palabreja que tanto te gusta ), clara, concisa y muy bien redactada.

Quizás deberíamos otorgarte el título "Maestro Clubdelphi"

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #33  
Antiguo 13-06-2007
jlsc jlsc is offline
Miembro
 
Registrado: may 2007
Posts: 38
Poder: 0
jlsc Va por buen camino
Thumbs up Aplicacion no se ejecuta en otro PC

Hola a todos,

Muchas gracias por sus soluciones, lo he hecho como me lo han aconsejado y funciona perfectamente. Muchas gracias Caral por tu detallada y buena explicacion, los mismo para lepe, waly2k1, neftali a todos gracias nuevamente.
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
Desactivar un form mientras se ejecuta otra aplicación hvelascos Internet 2 19-01-2007 01:50:41
Cantidad de veces que se ejecuta una aplicación efelix OOP 3 09-11-2006 17:23:55
¿Cuantas veces se ejecuta mi aplicación? m@r Varios 6 07-11-2006 15:28:33
no ejecuta mi aplicacion en un servidor de red jas010 Tablas planas 3 01-02-2005 00:23:57
mantener un archivo en memoria mientras ejecuta la aplicacion agustincs API de Windows 8 01-09-2004 02:05:57


La franja horaria es GMT +2. Ahora son las 08:38:00.


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