C/Visual C - Compactar Bases de Access

 
Vista:

Compactar Bases de Access

Publicado por Jose (2 intervenciones) el 13/06/2001 10:57:07
Hola a todos, necesito compactar una base de datos access desde Builder 5.0. ¿podeis echarme un cable?

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Compactar Bases de Access

Publicado por Alejandro (913 intervenciones) el 26/09/2024 18:24:41
¡Hola, José! Si necesitas compactar una base de datos de Access desde Builder 5.0, puedes hacerlo utilizando el motor de base de datos de Jet (Microsoft Access Database Engine). Aquí tienes los pasos para hacerlo:

1. Asegúrate de tener instalado el motor de base de datos de Jet en tu sistema. Puedes descargarlo e instalarlo desde el sitio web de Microsoft.

2. Abre tu proyecto en Builder 5.0 y asegúrate de tener acceso a la base de datos de Access que deseas compactar.

3. Utiliza la función `CompactDatabase` del motor de base de datos de Jet para compactar la base de datos. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <vcl.h>
#include <dbtables.hpp>
#include <dao.hpp>
 
void CompactAccessDatabase(const AnsiString& sourcePath, const AnsiString& destPath)
{
    TDatabase *db = new TDatabase(NULL);
    db->DatabaseName = "TempDB";
    db->AliasName = "TempDB";
    db->DriverName = "STANDARD";
    db->Params->Add("DATABASE=" + sourcePath);
    db->Params->Add("USER NAME=Admin");
    db->Params->Add("PASSWORD=");
    db->LoginPrompt = false;
    db->Open();
 
    TDAOTableDef *tableDef = new TDAOTableDef(NULL);
    tableDef->DatabaseName = "TempDB";
    tableDef->TableName = "TempTable";
    tableDef->ConnectMode = cmExclusive;
    tableDef->TableType = ttDBaseIV;
    tableDef->Exclusive = true;
    tableDef->Destination = destPath;
    tableDef->Source = sourcePath;
    tableDef->Options = "LANGID=0x0409;CP=1252;COUNTRY=0";
    tableDef->Open();
    tableDef->Close();
 
    db->Close();
    delete tableDef;
    delete db;
}

En el ejemplo anterior, `sourcePath` es la ruta de la base de datos de Access que deseas compactar, y `destPath` es la ruta donde se guardará la base de datos compactada.

4. Llama a la función `CompactAccessDatabase` pasando las rutas adecuadas:

1
2
3
AnsiString sourcePath = "C:\\ruta\\a\\tu\\base\\de\\datos.mdb";
AnsiString destPath = "C:\\ruta\\donde\\guardar\\base\\de\\datos_compactada.mdb";
CompactAccessDatabase(sourcePath, destPath);

Recuerda reemplazar las rutas de ejemplo con las rutas reales de tu base de datos.

Espero que esta información te sea útil para compactar una base de datos de Access desde Builder 5.0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar