Mensaje    Asunto: CONFIGURACION DEL BDE Y DIRECTORIO DE RED BAJO WINDOWS X Responder citando

MUCHOS AL INICIAR EN LA PROGRAMACION DE BASES DE DATOS, PASAN POR ALTO EL VALOR DE UNA SESSION1 Y DATABASE1, PARA UN BUEN FUNCIONAMIENTO DE ESTOS ACONTINUACION PONGO, EL CODIGO DE LA SESSION Y EL MODULO DE DATOS.

**************DENTRO DEL DATAMODULE1*****************
Código:
#include <vcl.h>
#pragma hdrstop

#include "UModuloDatos.h"
#include "io.h"    // PARA BORRAR EL ARCHIVO *.NET
#include "UNet.h"   // FORM DE LA RED
#include <IniFiles.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TDataModule1 *DataModule1;
//---------------------------------------------------------------------------
__fastcall TDataModule1::TDataModule1(TComponent* Owner)
    : TDataModule(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TDataModule1::DataModule1Destroy(TObject *Sender)
{
    //borrado del Archivo de Conexion de Red Pdoxusrs.net
    Session1->Active=false;
    Database1->Connected=false;
    AnsiString AR=Session1->NetFileDir+"PDOXUSRS.NET";
    unlink(AR.c_str());
}
//---------------------------------------------------------------------------

void __fastcall TDataModule1::DataModule1Create(TObject *Sender)
{
    AnsiString Cesar;
    Session1->Active=false;
    AnsiString AR=GetCurrentDir()+"\\NET\\SYSNET.INI";
    if( ! access(AR.c_str(),0)==0){
        ShowMessage("Es la Primera ves que se ejecuta este programa\n"
                    "por lo tanto debe indicar la ruta de los archivos\n"
                    "de la red para tabajar eficientemente");
        TFNet *AC = new TFNet(this);
        AC->RED = AR;
        switch(AC->ShowModal()){
            case mrCancel:
                    Application->Terminate();
                    break;
        }
        delete AC;
    }else{
        TIniFile *pWinIni = new TIniFile(AR);
        DataModule1->Database1->Params->Values["PATH"]=pWinIni->ReadString("BASES", "PATH", "");
        Cesar = pWinIni->ReadString("BASES", "PATH", "");
        delete pWinIni;
    }

    Session1->NetFileDir = Cesar;
    Session1->Active=true;
    Database1->Connected=true;
}
//---------------------------------------------------------------------------

*******************************





EL SIGUIENTE CODIGO ESTA DENTRO DE UN FORMULARIO PARA RASTREAR LA RED
CODIGO DEL FORM DE RED....

*******************************
Código:
#include <vcl.h>
#pragma hdrstop

#include "UModuloDatos.h"    // modulo de datos
#include <IniFiles.hpp>      // libreria de los archivos INI
#include "UNet.h"
#include <sys\stat.h>
#include <string.h>
#include <fcntl.h>
#include <io.h>

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFNet *FNet;
TIniFile *pWinIni; // puntero al archivo NET.INI de la configuracion.
AnsiString OldDir; // Para Guardar el directorio de la Aplicacion.

//---------------------------------------------------------------------------
__fastcall TFNet::TFNet(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFNet::Button1Click(TObject *Sender)
{
    Nuevo = DirectoryListBox1->Directory;
    pWinIni = new TIniFile(RED);
    pWinIni->WriteString("BASES", "PATH"               ,Nuevo);
    pWinIni->UpdateFile();
    DataModule1->Database1->Params->Values["PATH"]=pWinIni->ReadString("BASES", "PATH", "");
    delete pWinIni;
    ModalResult=mrOk;
}
//---------------------------------------------------------------------------
void __fastcall TFNet::Button2Click(TObject *Sender)
{
    ModalResult=mrCancel;
}
//---------------------------------------------------------------------------


void __fastcall TFNet::FormCreate(TObject *Sender)
{
//PATH=D:\H255\ARCHIVOS DE PROGRAMACION\ARCHIVOS DE BORLAND C++ BUILDER\Sistema Biblioteca\Bases
//    DirectoryListBox1->Directory = DataModule1->Database1->Params->Values["PATH"];
//    FileListBox1->Directory = DirectoryListBox1->Directory;

/** LO ANTERIOR SON COMENTARIOS */

    OldDir=GetCurrentDir();


    DirectoryListBox1->Directory = GetCurrentDir();
    FileListBox1->Directory = DirectoryListBox1->Directory;
   
    Button1->Enabled=false;
    DirectoryListBox1Change(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TFNet::DirectoryListBox1Change(TObject *Sender)
{
  FileListBox1->Directory = DirectoryListBox1->Directory;
    if (FileListBox1->Items->IndexOf("PRODUCTO.DB") > -1){
        Button1->Enabled=true;
        Label2->Caption = "Directorio Correcto";
    }else{
        Label2->Caption = "Directorio Incorrecto";
        if(Button1->Enabled)
            Button1->Enabled=false;
    }

}
//---------------------------------------------------------------------------

void __fastcall TFNet::FormDestroy(TObject *Sender)
{
    SetCurrentDir(OldDir);   
}
//---------------------------------------------------------------------------

*******************************

un saludo...
_________________
Cool