Fórum TEdit ou TDBEdit #320493
03/05/2006
0
- minha aplicação está funcionando em rede... qual componente seria o mais indicado pra eu usar nos meus formularios? TEdit ou TDBEdit ??
- Pergunto isso pelo fato do meu sistema trabalhar com TEdit nos formularios e de ter observado que quando dois usuarios estao incluindo um registro de mesmo nome, ao mesmo tempo, o sistema nao acusa que o registro ja existe - ´uma vez que o meu sistema checa se o registro ja existe no Evento OnExit do Componente TEdit´.
- Se eu trabalhasse com o componente TDBEdit quando eu digitasse o nome de um registro, teoricamente ele ja estaria inserido no campo da tabela para a checagem ou ainda precisaria comitar ele para ele estar disponivel para a checagem???
Mahdak
Curtir tópico
+ 0Posts
03/05/2006
Rodc
Gostei + 0
03/05/2006
Mahdak
- FireBird 1.5 ´.FDB´
- Delphi 7
Gostei + 0
03/05/2006
Sremulador
Pode ser os dois, dependendo do caso.
você tera que fazer isto antes de inserir o registro ou ao inserir caso contrario você podera ter um grande perda de perfomance
Sim tem que comitar para gravar no db
Gostei + 0
03/05/2006
Mahdak
como assim?
bom a checagem se o registro ja existe acontece da seguinte forma:
1. o usuario clica no botao ´novo´, para colocar a tabela em modo de Inserção e para gerar um código pro usuario ver...
2. o foco passa para o componente ´TEdit´ responsavel pelo registro que to querendo fazer a checagem... o usuario digita o que ele quer ali e entao ao sair do componente o sistema faz a checagem, atravez de um código tipo esse:
procedure TEstado.Edit_NomeExit(Sender: TObject); var zera : Integer; begin //verifica se o registro ja existe ao cadastra-lo DM.Tbl_UF_.Close; DM.Tbl_UF_.SelectSQL.Clear; DM.Tbl_UF_.SelectSQL.Add(´Select * From ESTADO Where Nome = :Consulta ´); DM.Tbl_UF_.Params[0].AsString; DM.Tbl_UF_.ParamByName(´Consulta´).AsString:=Estado.Edit_Nome.Text; DM.Tbl_UF_.Open; If Estado.Edit_nome.Text = ´´ then begin // evita de dar a mensagem quando nao tem nada escrito no edit end else if Estado.Edit_nome.Text = DM.Tbl_UF_NOME.AsString then begin Zera := Application.MessageBox(´O Registro ja existe, deseja cadastra-lo mesmo assim?´, ´CONFIRME´, mb_yesno); if zera = IDYES Then begin end else begin Estado.Edit_nome.Clear; Estado.Edit_nome.SetFocus; Estado.Btn_Editar.Enabled := false; Estado.Btn_Salvar.Enabled := true; Estado.Btn_Up.Enabled := false; Estado.Btn_Down.Enabled := false; end; end; end;
Sim tem que comitar para gravar no db
- o problema é o seguinte: o sistema checa tudo certinho... porem fiz o teste como se dois usuarios estivessem incluindo o mesmo registro ao mesmo tempo... o resultado foi que o sistema cadastrou os dois registros.
OBS: nao estou falando de chave primária, falo de um campo qualquer da tabela que preciso fazer a checagem
- entao eu deduzi que isso aconteceu pelo fato do componente ´TEdit´ nao inserir o registro na tabela antes de dar um post...
- teoricamente o componente TEdit faria isso pelo fato de eu ter dado um insert e de ele ser linkado diretamente com o campo da tabela ??
- é justamente essa a minha duvida....
espero ter conseguido me expressar....
Abraços! :lol:
[/code]
Gostei + 0
04/05/2006
Camilo
Gostei + 0
04/05/2006
Sremulador
Gostei + 0
05/05/2006
Mahdak
- ja tentei usar ele aqui da seguinte maneira:
procedure TDM.CDS_LoginReconcileError(DataSet: TCustomClientDataSet; E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction); begin action := HandleReconcilieError(Tbl_Login, UpdateKind, E); end;
Erro gerado: [b:19a88df7c8] [Error] U_DM.pas(229): Undeclared identifier: ´HandleReconcilieError´ [/b:19a88df7c8]
Obs: ja inclui ele na clausula uses do meu data module
uses U_reconciliacao;
Alguem poderia me ajudar com isso???
abração
Gostei + 0
05/05/2006
Rjun
Gostei + 0
05/05/2006
Mahdak
Rogério, utilizo os componentes da paleta Interbase, TIBDataSet, TIBTransaction, TIBDatabase, TDataSource... dae acrescentei mais um TClientDataSet e um TDataProvider pra manipular a reconciliação... ta uma pilha de componente pra trabalhar uahuaha...
o problema eh que to meio perdido com a manipulação desse formulario, segundo o erro que descrevi no post anterior.. aquilo eu tirei de um exemplo de um livro...
abração
Gostei + 0