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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| //---------------------------------------------------------------------------
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) __stdcall int TestBDE();
//---------------------------------------------------------------------------
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
//---------------------------------------------------------------------------
#include <DBTables.hpp>
//---------------------------------------------------------------------------
int __stdcall TestBDE()
{
char lpFileName[MAX_PATH];
GetModuleFileName(
GetModuleHandle(NULL),
lpFileName,
MAX_PATH);
int Result = 0;
try
{
TTable *Table1 = new TTable(NULL);
Result = 1;
Table1->Active = false; // Le composant Table ne doit pas être actif
Table1->DatabaseName = ExtractFileDir(lpFileName);
Table1->TableType = ttParadox;
Table1->TableName = "CustInfo";
// décrit les champs de la table
Table1->FieldDefs->Clear();
TFieldDef *pNewDef = Table1->FieldDefs->AddFieldDef();
pNewDef->Name = "Field1";
pNewDef->DataType = ftInteger;
pNewDef->Required = true;
pNewDef = Table1->FieldDefs->AddFieldDef();
pNewDef->Name = "Field2";
pNewDef->DataType = ftString;
pNewDef->Size = 30;
// Décrit ensuite tous les index
Table1->IndexDefs->Clear();
/* le 1er index n'a aucun nom car il s'agit d'une clé primaire Paradox */
Table1->IndexDefs->Add("","Field1", TIndexOptions() <<ixPrimary << ixUnique);
Table1->IndexDefs->Add("Fld2Index","Field2", TIndexOptions() << ixCaseInsensitive);
// Maintenant que vous avez spécifié votre choix, création de la table
Table1->CreateTable();
Result = 2;
}
catch(Exception *e)
{
Result = -1;
}
return Result;
} |