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
  #1  
Antiguo 28-08-2004
images images is offline
Miembro
 
Registrado: ago 2004
Posts: 23
Poder: 0
images Va por buen camino
Asignar parametros al TSession y al TDataBase por codigo me da error

Hola

Siguiendo algunos tutoriales me he decidido a asignar los valores de mi base de datos paradox en tiempo de ejecucion.

En el OnCreate del DataModule pongo el siguiente codigo q es el q saque de un articulo:

Código Delphi [-]
  With SesionServer Do   // TSession
  Begin
   NetFileDir:=CamTextoIni.ReadString('SESIONSERVER','NetFileDir','');
   PrivateDir:=CamTextoIni.ReadString('SESIONSERVER','PrivateDir','');
  End;
 
 With SERVER Do    //TDabaBase
  Begin
   DatabaseName:='SERVER';
   Params.Clear;
   Params.Add('PATH='+CamTextoIni.ReadString('SERVER','PATH',''));
   Params.Add('DEFAULT DRIVER=PARADOX');
   Params.Add('ENABLE BCD=FALSE');
   Connected:=True;
  End;

Despues, con cada tabla hago esto:

Código Delphi [-]
 Try
      Tpv.DatabaseName:='SERVER';       // TPV
      Tpv.SessionName:='SessionServer';
      Tpv.Active:=True;
    Except
      ShowMessage('NO SE PUDO ABRIR LA TABLA TPV')
    End;
    FormSplash.ProgressBar.StepIt;
    FormSplash.update;

Me da el error:

"UnNkow DataBase
Alias: Server"

Antes cuando lo tenia en el programa el TDabaBase le puse el Alias q cree. Pero metiendo los parametros a mano no hace falta el alias ¿no?
Responder Con Cita
  #2  
Antiguo 28-08-2004
Avatar de moesis
moesis moesis is offline
Miembro
 
Registrado: jun 2004
Ubicación: Islas Canarias
Posts: 46
Poder: 0
moesis Va por buen camino
Saludos,

Mi estimado iniciado en Delphi, el error que estás cometiendo es que no has definido un alias en le utilidad SQLExplorer en el menú de Borland Delphi 7.

Cuando hayas abierto la aplicación has de crear un nuevo 'Alias' que apunte al directorio donde residen tus tablas de Paradox.

Esperando haberte ayudado,
un saludo,
__________________
ø¤º° Moesis °º¤ø
Dios nos ha dado dos orejas y una boca para escuchar el doble de lo que hablamos.
Consulta la Guía de Estilo.
Responder Con Cita
  #3  
Antiguo 28-08-2004
images images is offline
Miembro
 
Registrado: ago 2004
Posts: 23
Poder: 0
images Va por buen camino
Gracias

Pero no me rula

Ya tengo los Alias Creados y con ellos funcionaba bien asignando los parametros en la aplicacion.
Pero al asignarle los parametros en tiempo de ejecucion leyendolos de un .ini me da el error q dicho antes. Antes de leer tu respuesta al hacerlo con el .ini le quite el parametro Alias al TDabaBase, por que pense q al asignarle la ruta y demas parametros no hacia falta el Alias.
Al leer tu respuesta he puesto el Alias otra vez pero tampoco rula
Responder Con Cita
  #4  
Antiguo 29-08-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Está bien que se quieran poner ciertas cosas por código, pero si no es necesario, tampoco hay que ser más papitas que el papa

Creo (no se como tienes la aplicación) que la mayoría de esos parámetros son fijos "esté donde esté" la aplicación, por lo que yo los configuraría en el Inspentor de Objetos.

Otra história es, por ejemplo, la ruta de la base de datos (si no queremos usar alias), que eso sí puede cambiar de instalación a instalación. Para ello puedes hacer algo así (si suponemos que están en el mismo Path que la app.):
Código Delphi [-]
  if Database1.Connected then Database1.Connected := false;

  Database1.Params.Clear;
  Database1.Params.Add('DEFAULT DRIVER=PARADOX');
  Database1.Params.Add('ENABLE BCD=FALSE');
  Database1.Params.Add('PATH=' + ExtractFilePath(Application.ExeName));
  Database1.Connected := true;

Espero que te sirva
Responder Con Cita
  #5  
Antiguo 29-08-2004
Raptor Raptor is offline
No confirmado
 
Registrado: jul 2003
Ubicación: Santo Domingo R.D.
Posts: 105
Poder: 0
Raptor Va por buen camino
holas a todos


images : tu problema consiste en que tu le esta asignando el tsession a los table , no se los asigne , deja que el TDatabase tome la seccion por default.

Este lo que hace es si no existe un TSession entonces crea una en tiempo de ejecucion..

todos tus parametros estan bien.. a excepcion de esto.:
Try
Tpv.DatabaseName:='SERVER'; // TPV
Tpv.SessionName:='SessionServer';
Tpv.Active:=True;
Except
ShowMessage('NO SE PUDO ABRIR LA TABLA TPV')
End;
FormSplash.ProgressBar.StepIt;
FormSplash.update;

o sea no le asite el tsession a nadie..


suerte...
Responder Con Cita
  #6  
Antiguo 07-09-2004
luigidean luigidean is offline
Miembro
 
Registrado: ago 2004
Posts: 22
Poder: 0
luigidean Va por buen camino
Thumbs up a mi tambien me paso lo mismo

Yo también tuve un problema parecido, vereis, os cuento: Al igual que el compañero que hace la pregunta, yo tambien queria conectar mi BD por codigo, intenté hacerlo en el evento OnCreate del formulario con este codigo(decir que no tengo alias, solo queria poner el path de la BD):

Código:
//lo pongo en el evento Activate porque en el Create da error
DataModule1.dbNoteLinks.DatabaseName:=ExtractFilePath(Application.ExeName) + 'bd';
DataModule1.dbNoteLinks.Connected:=true;
DataModule1.tblCategorias.Open;
DataModule1.tblLinks.Open;
Pero no me funcionó, me daba un error que ahora mismo no recuerdo, entonces se me ocurrió ponerlo en el evento OnActivate del formulario y entonces ya todo fue bien. Para controlar el tema del evento OnActivate os pongo el codigo completo:

Código:
 
if activo=false then begin
		self.Top:=self.Top-10;
		//lo pongo en el evento Activate porque en el Create da error
		DataModule1.dbNoteLinks.DatabaseName:=ExtractFilePath(Application.ExeName) + 'bd';
		DataModule1.dbNoteLinks.Connected:=true;
		DataModule1.tblCategorias.Open;
		DataModule1.tblLinks.Open;
	end;
	activo:= true;
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


La franja horaria es GMT +2. Ahora son las 21:33:28.


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