[Duvida] tabela pessoa
bom dia gostaria de saber como faco p grava um cadastro de cliente q ta dividido em 3 tabelas.
tblPessoa;
tblPessoaFisica;
tblEndereco;
to usando delphi 2009 e mysql, eu nunca usei uma estrutura dessa ai num toconseguindo resgatar o ID da tabela pessoa para pode gravar as outroas.
alguem pode me passar uma forma funcional para resolver isso?
e se possivel um modelo dessas tabelas, para q eu possa comprar as estruturas e melhorar a minha .
tblPessoa;
tblPessoaFisica;
tblEndereco;
to usando delphi 2009 e mysql, eu nunca usei uma estrutura dessa ai num toconseguindo resgatar o ID da tabela pessoa para pode gravar as outroas.
alguem pode me passar uma forma funcional para resolver isso?
e se possivel um modelo dessas tabelas, para q eu possa comprar as estruturas e melhorar a minha .
Adriano Carvalho
Curtidas 0
Respostas
Andre Oliveira
11/07/2011
Pra esse tipo de problema o ideal é dividir a tela em TRES GUIAS ..
criar um DataModule e usar [OBJETO DE ACESSO A DADOS] + DATASET PROVIDER + CLIENT DATASET + DATA SOURCE
para cada guia voce deve configurar um quarteto destes componentes ..
é provavel que estas tabelas estejam em alguma hierarquia .. então tente aprender a respeito da propriedade master fields do CLIENT DATASET ...
Tambem recomendo que voce acesse as video aulas do CURSO DE CLIENT DATASET disponivel no DevMedia.
Qualquer coisa que puder ajudar só falar
criar um DataModule e usar [OBJETO DE ACESSO A DADOS] + DATASET PROVIDER + CLIENT DATASET + DATA SOURCE
para cada guia voce deve configurar um quarteto destes componentes ..
é provavel que estas tabelas estejam em alguma hierarquia .. então tente aprender a respeito da propriedade master fields do CLIENT DATASET ...
Tambem recomendo que voce acesse as video aulas do CURSO DE CLIENT DATASET disponivel no DevMedia.
Qualquer coisa que puder ajudar só falar
GOSTEI 0
Daniel Thomaz
11/07/2011
sim, ja fiz tudo q disse minhas tabelas tem o campo id_pessoa em todas, entao tenho q recuperar esse id da tabela principal para colocar nas outras, e tbm to usando datasnap ai q complicou um pouco mais.
GOSTEI 0
José Curdo
11/07/2011
Acrescentando a dica do André, sugiro o uso de DBExpress na escolha do [OBJETO DE ACESSO A DADOS], neste caso, SQLDataSet.
GOSTEI 0
Daniel Thomaz
11/07/2011
bom dia, eu ja to usando o dbexpress meu problema e so na hora de recuperar o ID da tabela pessoa, para poder atribuir na 2 e 3 tabela, como posso pegar esse ID no banco de dados mysql antes de da um applyUpdates do dataset?
GOSTEI 0
Andre Oliveira
11/07/2011
Você pode usar o evento BeforePost e nele voce recupera a informação referente ao campo chave da tabela pessoa ..
Qqr duvida perguntae!
Qqr duvida perguntae!
GOSTEI 0
Adriano Carvalho
11/07/2011
ola ja consegui resolver com esse codigo aqui
procedure TFuncoes.autoInc(Table: String);
var sqlQuery: TSQLQuery;
begin
try
sqlQuery := TSQLQuery.Create(Self);
sqlQuery.SQLConnection := DMServerContainer.ServerContainer.mobi;
sqlQuery.SQL.Add('ALTER TABLE '+Table+' AUTO_INCREMENT = '+ IntToStr(ID+1));
sqlQuery.ExecSQL
finally
FreeAndNil(sqlQuery);
end;
end;
function TFuncoes.GetID(Table: String): Integer;
var sqlQuery : TSQLQuery;
begin
try
sqlQuery := TSQLQuery.Create(Self);
sqlQuery.SQLConnection := DMServerContainer.ServerContainer.mobi;
sqlQuery.SQL.Add('SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '+QuotedStr(Table));
sqlQuery.Open;
ID := sqlQuery.Fields[0].AsInteger;
autoInc(Table);
result := sqlQuery.Fields[0].Value;
finally
FreeAndNil(sqlQuery);
end;
end;
GOSTEI 0