GARANTIR DESCONTO

Fórum Usando o LOCATE com campos secundários e em INCLUSAO #269441

21/02/2005

0

Oi Pessoal,

Estou usando Access com ADO e um Data Module onde coloco todos os meus DataSources e as suas respectivas ADOTables.
No momento em que estou incluindo um registro em uma Tabela X, eu preciso fazer uma validação de um campo não chave (Tenho o indice secundario), mas quando uso o comando LOCATE nessa mesma tabela, o evento BEFOREPOST é chamado e surge o erro ´Operação de várias etapas gerou um erros. Verifique cada valor de Status.´

Gostaria de saber como posso fazer para que o comando LOCATE funcione quando estou em inclusão, me sugeriram copiar um DATASET e usar o método CLONECURSOR, mas não entendi bem o que devo fazer.
Se puderem me passar os detalhes ficarei grato,

Aqui a rotina onde uso o LOCATE:

/ Verifica se o Cheque já não está na Tabela
if not DataSource_Despesas_Diarias2.DataSet.Locate(´DES_BANCO;DES_AGENC;DES_CHEQUE´,
VarArrayOf([DataMod.ADOTable_Despesas_DiariasDES_Banco.Value,
DataMod.ADOTable_Despesas_DiariasDES_Agenc.Value,
DataMod.ADOTable_Despesas_DiariasDES_Cheque.Text]),[]) then
begin
FNum_Cheque.Items.Add(FormatCurr(´0000000000´, I));
end;

Esta rotina é chamada quando o comando LOCATE é chamado e ocorre o erro:

procedure TDataMod.ADOTable_Despesas_DiariasBeforePost(DataSet: TDataSet);
begin
If (DataMod.ADOTable_Despesas_Diarias.State = DsInsert ) and
(DataMod.ADOTable_Despesas_DiariasDES_TIPO.Text = ´´) then
begin
ShowMessage(´O Tipo de Pagamento precisa ser informado!´);
Form_Despesas_Diarias.FTipoPagto.SetFocus;
ADOTable_Despesas_Diarias.Edit;
end;
end;
end.


Muito Obrigado POR QUALQUER AJUDA,

Alex


Alexsandro

Alexsandro

Responder

Posts

22/02/2005

Alexsandro

SOBE


Responder

Gostei + 0

22/02/2005

Somar

Seguinte - Vc não pode usar o mesmo componente - pois vc perderia o cursor ...

Eu uso um SqlClientDataSet auxiliar - e faço um sql buscando as informaçãoes desejadas . por exemplo
ao cadastrar um produto verifico se o codigo do produto digitado ja não esta cadastrado ...
Mas vc nõa pode fazer isso usando o mesmo componente que esta em insert - pois vc teria que cancelar a operação ..

Se eu entendi sua duvida é isso aí ...
t+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar