gleiston Postado Junho 14, 2004 Denunciar Share Postado Junho 14, 2004 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.VarTabela: TTable;Indices: TIndexOptions;beginTabela:= TTable.Create;Indices:= [ixPrimary, IxUnique];with Tabela dobeginactive:= 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; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 gleistoncardoso Postado Junho 15, 2004 Denunciar Share Postado Junho 15, 2004 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; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
gleiston
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
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.