Fórum Problemas com inserçao de registros #322332
27/05/2006
0
ola.
To usando este codigo aqui para antes de inserir um registro em uma tabela cdsMsg, este codigo e suposto de checar se o mesmo ja esta inserido.Mas vale lembrar que o mesmo nome pode estar inserido , desde q o email seje outro ou mesmo se o nome e o email sao iguais o status do cliente for diferente pode ser inserido:
[/code]
To usando este codigo aqui para antes de inserir um registro em uma tabela cdsMsg, este codigo e suposto de checar se o mesmo ja esta inserido.Mas vale lembrar que o mesmo nome pode estar inserido , desde q o email seje outro ou mesmo se o nome e o email sao iguais o status do cliente for diferente pode ser inserido:
if not cdsMsg.Locate(´Nome´,lstClientes.Items[lstClientes.ItemIndex],[]) then Begin frmMain.ClientDataSet1.Locate(´Nome´,lstClientes.Items[lstClientes.ItemIndex],[]); Nome := frmMain.ClientDataSet1.FieldByName(´Nome´).AsString; Email := frmMain.ClientDataSet1.FieldByName(´Email´).asString; Status := frmMain.ClientDataSet1.FieldByName(´Status´).asString; Msg := lstMsg.Items[lstMsg.ItemIndex]; if not frmMain.cdsEnviados.Locate(´Nome´,Nome,[]) then Begin cdsMsg.Insert; cdsMsg.FieldByName(´Nome´).asString := Nome; cdsMsg.FieldByName(´Email´).AsString := Email; cdsMsg.FieldByName(´Msg´).AsString := Msg; cdsMsg.FieldByName(´dtEnvio´).AsString := DateToStr(Date); cdsMsg.FieldByName(´Status´).asString := Status; cdsMsg.Post; End Else Begin //encontrou registro q ja foi mandado.//aqui eu checo se o email e difrente, mas acontece q o fieldbyname(email) ta vindo vazio , mesmo no banco estando preenchido dai ele grava de novo if frmMain.cdsEnviados.FieldByName(´Email´).AsString <> Email then Begin cdsMsg.Insert; cdsMsg.FieldByName(´Nome´).asString := Nome; cdsMsg.FieldByName(´Email´).AsString := Email; cdsMsg.FieldByName(´Msg´).AsString := Msg; cdsMsg.FieldByName(´dtEnvio´).AsString := DateToStr(Date); cdsMsg.FieldByName(´Status´).asString := Status; cdsMsg.Post; End Else Begin //é o mesmo email a mesma pessoa if frmMain.cdsEnviados.FieldByName(´Status´).AsString <> Status then Begin cdsMsg.Insert; cdsMsg.FieldByName(´Nome´).asString := Nome; cdsMsg.FieldByName(´Email´).AsString := Email; cdsMsg.FieldByName(´Msg´).AsString := Msg; cdsMsg.FieldByName(´dtEnvio´).AsString := DateToStr(Date); cdsMsg.FieldByName(´Status´).asString := Status; cdsMsg.Post; End//do if status Else Begin MessageDlg(´Este cliente já recebeu esta mensagem este mês.´, mtInformation, [mbOK], 0); End; End;//do else email End;//do else do if do locate do nome pra ver se ja foi enviado End Else Begin MessageDlg(´Este Cliente já foi inserido.´, mtInformation, [mbOK], 0); End;
Ecptavares
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)