Fórum criar tabela em tempo execução #237551
14/06/2004
0
Em uma parte do meu programa preciso criar tabelas em tempo de execução, encontrei o código abaixo só que as tabelas ficam todas em um datamodule e não está dando certo gostaria de ajuda.
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;
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;
Gleiston
Curtir tópico
+ 0
Responder
Posts
15/06/2004
Gleiston
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;
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;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)