Fórum Criar Tabela Dinamica - ClientDataSet #340988
26/04/2007
0
Preciso desenvolver uma rotina que crie tabelas dinamicamente.
Que essa tabela seja criada com a estrutura: SqlDataSet, Provider, ClientDataSet, DataSource.
Desenvolvi uma função que cria uma tabela especifica (com campos definidos) mas não consegui fazer uma função que crie tabelas diversas com a mesma estrutura.
Alguma coisa assim Exemplo:
Crietabela( NomeTabela );
AddCampos( Campo1, Tipo1, Campo2, Tipo2, etc..)
ou
CriaTabela( NomeTabela, Campos,Tipo,etc..)
===
Abaixo a função que uso prara criar uma tabela de Titulos
function CriaTabelaTitulos( NomeTabela:String; NomeDataSource:String) : Boolean;
Var
Campo : Tfield;
Begin
Result := false;
try
Tabela2.Name := NomeTabela;
Tabela2.Close;
Tabela2.Fields.Clear;
Tabela2.FieldDefs.Clear;
with Tabela2.FieldDefs do
begin
Campo := TStringField.Create( Application );
Campo.FieldName := ´Ped_Cod´;
Campo.Name := ´Ped_Cod´;
Campo.DataSet := Tabela2;
Campo.DisplayLabel := ´Pedido´;
//
Campo := TStringField.Create( Application );
Campo.FieldName := ´Cliente´;
Campo.Name := ´Cliente´;
Campo.DataSet := Tabela2;
Campo.DisplayLabel := ´Cliente´;
//
Campo := TFloatField.Create( Application );
Campo.FieldName := ´VlrPedido´;
Campo.Name := ´VlrPedido´;
Campo.DataSet := Tabela2;
Campo.DisplayLabel := ´Vlr. Pedido´;
//
Campo := TStringField.Create( Application );
Campo.FieldName := ´Docto´;
Campo.Name := ´Docto´;
Campo.DataSet := Tabela2;
Campo.DisplayLabel := ´Docto´;
//
Campo := TDateField.Create( Application );
Campo.FieldName := ´Vencto´;
Campo.Name := ´Vencto´;
Campo.DataSet := Tabela2;
Campo.DisplayLabel := ´Vencto´;
end;
Tabela2.CreateDataSet;
Except
begin
MessageDlg(´Error na Criação da Tabela´, mtError, [mbOK],0);
exit;
end;
end;
Result := true;
end;
Abraços a todos.
Neto
Neto
Curtir tópico
+ 0Posts
26/04/2007
Marco Salles
Carregue assim:
procedure TForm1.Button1Click(Sender: TObject);
Gostei + 0
26/04/2007
Marco Salles
Carregue assim:
procedure TForm1.Button1Click(Sender: TObject);
Gostei + 0
27/04/2007
Neto
Criei uma nova unit no projeto onde vou colocar as intruções que vc está me ´dizendo´, e quando declaro o type no início da unit (após interface) o delphi retorna:
Undeclared identifier: TFieldType.
Estou fazendo assim.
Tenho um projeto com o formulario principal que ainda não coloquei nada nele. Adicionei uma nova Unit no projeto e estou declarando no início assim:
=================
unit Unit2;
interface
type
TParametros = class
Tipos : TFieldType;
Tamanho: integer;
Requerido : Boolean;
end;
implementation
end.
Como devo fazer para o sistema reconhecer as instruções que vc passou
Abraços
Neto
Gostei + 0
28/04/2007
Marco Salles
para o Delphi 7.0 faz assim
interface uses DB,DBClient,Classes,QDialogs;
Gostei + 0
28/04/2007
Neto
Agora o próximo problema.
Declarei cds como tipo TClientDataSet no var do Buttom, ai reconheceu
CriarTabela(cds , umaLista);
Aqui no for quando faço Tparameters.Create( >>> aqui quando digito o parenteses o Delphi retorna [ * Np Parameters Expected * ]
for i:=0 to UmaLista.count - 1 do
TParametros.Create(umalIsta.objects[i]).Free
Ai se eu rodo com F9 o sitema retorna:
Too many actual parameters.
Obrigado
Abraços
Neto
Gostei + 0
28/04/2007
Marco Salles
Porque [u:1d6af7b566]Create[/u:1d6af7b566] ??????
simplesmente é assim :
deixo eu usar o meu bom ´Ingles´:
entende....
Gostei + 0
28/04/2007
Neto
Obrigado pela ajuda, mas temos mais problemas....
Ao Clicar no botão para executar o sistema retorna erro de exceção.
for i := 0 to UmaLista.count - 1 do
TParametros(umalIsta.objects[i]).Free;
posso enviar o projeto para algum endereço pra vc ver.
Acho que ao criar a nova tabela a rotina não está recebendo parametro.
Desculpe a (imbessssibilidade - burrice), te agradeço.
Abraços e bom domingo (dia do senhor), vamos lá.
Neto
Gostei + 0
28/04/2007
Marco Salles
nun precisa pedir perdão nada não e não é burrice não.. eu é que sou brincalhão
nun carece não... Acho que da para resolver aqui mesmo. é so ficar mais calmo e encarar o Bicho.. ele so assusta é igual cavalo ,
´O Computador é igual ao CAVALO : sabe quem ta Montando nele´
que erro que dá ???
Com voce ta povoando os Objetos desta StringList ????
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)