Jump to content
Fórum Script Brasil
  • 0

Criar Tabela Em Tempo De Execução


gleiston

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...