Ir para conteúdo
Fórum Script Brasil
  • 0

Criar Tabela Em Tempo De Execução


gleiston

Pergunta

Em uma parte do meu programa preciso criar tabelas em tempo de execução, encontrei o código abaixo, só que as tabelas do meu programa ficam todas em um datamodule e não está dando certo, este código está em um botão num determinado formulário.

Var

Tabela: TTable;

Indices: TIndexOptions;

begin

Tabela:= TTable.Create;

Indices:= [ixPrimary, IxUnique];

with Tabela do

begin

active:= false;

databasename:= 'c:\teste';

tablename:= 'Tabela';

tabletype:= ttDefault;

fielddefs.clear;

fielddefs.add('Codigo', ftInteger, 0, false);

...

indexdefs.clear;

indexdefs.add('Codigo_Chave', 'codigo', Indices);

CreateTable;

end;

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Para quem também está a procura de um código assim consegui criar com o código abaixo, só que as minhas tabelas ficam todas em um datamodule, tem como ao se criar a tabela em tempo de execução, fazer com que ela e um datasource sejam inseridos no data module.

var

codigo : integer;

nome : string;

begin

codigo := 0;

codigo := module.tbfuncionarioCodigofuncionario.Value;

tabela := ttable.create(application);

try

Tabela.DatabaseName := 'escola';

Tabela.TableName := 'ponto'+ inttostr(codigo) + '.DB';

nome := tabela.TableName;

label27.Caption := nome;

if FileExists('c:\dados\'+ nome)=false then

begin

Tabela.TableType := ttParadox;

Tabela.FieldDefs.add('data', ftdate, 0, true);

Tabela.FieldDefs.add('ent1', fttime, 0, false);

Tabela.FieldDefs.add('sai1', fttime, 0, false);

Tabela.FieldDefs.add('ent2', fttime, 0, false);

Tabela.FieldDefs.add('sai2', fttime, 0, false);

Tabela.CreateTable;

Tabela.AddIndex('idata','data', [ixPrimary, ixUnique]);

Tabela.addindex('pordata', 'data', [ixCaseInsensitive, ixdescending]);

ShowMessage('A tabela foi criada com êxito!');

end

else

ShowMessage('Este funcionário já possui a tabela de ponto!');

finally

//Tabela.Free;

end;

end;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...