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