Uso o seguinte comando para criar tabelas paradox em tempo de execução....

   Table1:= TTable.Create(self);
   with Table1 do
   begin
      Active       := False;
      DatabaseName := 'Banco';
      TableName    := 'Associados';
      TableType    := ttParadox;
      //------ Cria os campos da tabela <------
      with FieldDefs do
      begin
         Clear;
         Add('Codigo_matricula' , ftinteger, 0, true);
         Add('Codigo_empresa'   , ftinteger, 0, false);
         Add('Nome'             , ftString ,45, False);
         Add('F_pai'            , ftstring ,45, false);
         Add('F_mae'            , ftstring ,45, false);
         Add('Rg'               , ftstring ,10, false);
         Add('Cpf'              , ftString ,14, false);
         Add('Cart_profissional', ftinteger, 0, false);
         Add('Serie_cart'       , ftstring , 8, false);
         Add('Pis'              , ftstring ,14, false);
         Add('Dtnascimento'     , ftDate   , 0, false);
         Add('Dt_admissao'      , ftDate   , 0, false);
         Add('Dt_demissao'      , ftDate   , 0, false);
         Add('Est_civil'        , ftstring ,13, false);
      end;
      //------ Cria a chave primária e índices <------
      with IndexDefs do
      begin
         Clear;
         Add(''                , 'Codigo_matricula', [ixPrimary, ixUnique]);
         Add('ind_nome'        , 'Nome'            , [ixCaseInsensitive]);
         Add('ind_codEmpresa'  , 'Codigo_empresa'  , [ixCaseInsensitive]);
         Add('ind_dtAdmissao'  , 'Dt_admissao'     , [ixCaseInsensitive]);
         Add('ind_dtDemissao'  , 'Dt_demissao'     , [ixCaseInsensitive]);
      end;
      //------ Cria tabela <------
      CreateTable;
      Showmessage('Tabela Associados Criada!!!');
   end;

        O parametro True do campo Codigo_matricula da tabela cria um arquivo 
com a
extensão Associado.VAL no diretorio onde esta a tabela. Esse arquivo .VAL,
pelo que eu pude perceber, é que ele faz com que o campo Codigo_matricula
seja requerido.
        Se eu abrir a tabela pelo DataBase Desktop vou ver que o check Required
Field esta marcado.
        Ocorre que o paradox muitas vezes da problema de índice (corrompe), 
então
eu criei uma rotina para reindexar a tabela, que é a rotina abaixo, só que
se esse arquivo VAL existir eu não consigo reindexar os meus índices.

        Minha pergunta é, como eu faço para criar esse arquivo VAL via 
programação
?

var
   IndPri, IndSec : TIndexOptions;
begin
   begin
      Fmenu_principal.ExcluirArquivos(ExtractFilePath(Application.Exename) +
'Dados\','*.px');
      Fmenu_principal.ExcluirArquivos(ExtractFilePath(Application.Exename) +
'Dados\','*.xg*');
      Fmenu_principal.ExcluirArquivos(ExtractFilePath(Application.Exename) +
'Dados\','*.yg*');

      Screen.Cursor := crHourGlass;
      IndPri := [ixPrimary, ixUnique];
      IndSec := [ixCaseInsensitive];
      with tabela do
      begin
         Active       := False;
         DatabaseName := 'Bancos';
         TableName    := 'Associados';
         TableType    := ttDefault;
         lblTabela.Caption := ' Recriando índices da tabela ' +
tabela.TableName;
         Application.ProcessMessages;
         IndexDefs.Clear;
         AddIndex(''                , 'Codigo_matricula', IndPri);
         AddIndex('ind_codEmpresa'  , 'Codigo_empresa'  , IndSec);
         AddIndex('ind_dtAdmissao'  , 'Dt_admissao'     , IndSec);
         AddIndex('ind_dtDemissao'  , 'Dt_demissao'     , IndSec);
         AddIndex('ind_dtnascimento', 'Dtnascimento'    , IndSec);
         AddIndex('ind_nome'        , 'Nome'            , IndSec);
         Active := True;
      end;
   end;
end;


                    ~\\|//~
                    -(o o)-
o--------------oOOOo--(_)--oOOOo-------------o
|                                            |
|           Eduardo de Almeida Silva         |
|               Kobra Sistemas               |
|  [EMAIL PROTECTED]  -   (14)3263-0326   |
|                                            |
|                .oooO   Oooo.               |
o----------------(   )---(   )---------------o
                  \ (     ) /
                   \_)   (_/



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a