TEdit ou TDBEdit
Caros colegas....
- 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???
- 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
Curtidas 0
Respostas
Rodc
03/05/2006
Qual banco de dados você usa?
GOSTEI 0
Mahdak
03/05/2006
Qual banco de dados você usa?
- FireBird 1.5 ´.FDB´
- Delphi 7
GOSTEI 0
Sremulador
03/05/2006
- minha aplicação está funcionando em rede... qual componente seria o mais indicado pra eu usar nos meus formularios? TEdit ou TDBEdit ??
Pode ser os dois, dependendo do caso.
- 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´.
você tera que fazer isto antes de inserir o registro ou ao inserir caso contrario você podera ter um grande perda de perfomance
- 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???
Sim tem que comitar para gravar no db
GOSTEI 0
Mahdak
03/05/2006
minha aplicação está funcionando em rede... qual componente seria o mais indicado pra eu usar nos meus formularios? TEdit ou TDBEdit ??
Pode ser os dois, dependendo do caso.
como assim?
- 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´.
você tera que fazer isto antes de inserir o registro ou ao inserir caso contrario você podera ter um grande perda de perfomance
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;
- 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???
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
Camilo
03/05/2006
no meu caso, mando todas as atualizações e cadastramento de novos registros via sql, naum uso como o japa tá fazendo, assim eu tenho certeza de q eu mandar um insert posso definir no banco o q vai poder se repetir ou ñ em algum campo da tabela, e gostaria de saber dos colegas jah aproveitando q eh o mesmo assunto, se isso causa alguma lentidão ou ñ no sistema, pois em um .insert e .post estaria fazendo isso em cache e no banco cm o commit, assim naum precisando mandar um novo select pra da um refresh nos dados de um grid por exemplo... existe alguma maneira de atualizar os dados quando mando um insert na tabela e q essa tabela estou mostrando no grid algum comando q atualize a tela sem um novo comando select...??
GOSTEI 0
Sremulador
03/05/2006
no caso de seu exemplo não averia necessidade de fazer um check poderia fazer uma chave unica pois ao inserir o item o for verificado a sua existencia ele vai te retornar um erro...
GOSTEI 0
Mahdak
03/05/2006
- to dando uma olhada num livro aqui... será que o formulário de reconciliação de erros do delphi nao seria uma boa opção para o meu caso??
- ja tentei usar ele aqui da seguinte maneira:
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
- 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
Rjun
03/05/2006
Você usa TTable para trabalhar com seus dados?
GOSTEI 0
Mahdak
03/05/2006
Você usa TTable para trabalhar com seus dados?
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