Ola, Tenho um formulario que consulta produtos com uma dbdrig e campos de busca e ao clicar duas vezes no dbdrig eu tenho um comando que duplica os dados da tabela e grava normal.
Porem se eu faço uma consulta no dbdrig antes, ele não grava, o que estou fazendo errado. Segue o comando de duplicar registros: //Função para duplicar registros procedure TfConsulta_Ent_NovaEdicao.DuplicaRegistroDataSet( dataSet: TCustomClientDataSet; recNo: integer; camposIgnorar: array of string); function IgnorarCampo(campo: string): boolean; var i: integer; begin Result := false; for i := 0 to Length(camposIgnorar) - 1 do begin if (camposIgnorar[i] = campo) then begin Result := true; Break; end; end; end; var valores: Variant; i: integer; readOnly: boolean; begin // Duplica o registro "recNo" de um dataset dataSet.RecNo := recNo; valores := VarArrayCreate([0, dataSet.FieldCount - 1], VarVariant); for i := 0 to (dataSet.FieldCount - 1) do valores[i] := dataSet.Fields[i].Value; dataSet.Insert; for i := 0 to (dataSet.FieldCount - 1) do begin if (not(IgnorarCampo(dataSet.Fields[i].FieldName))) then begin readOnly := dataSet.Fields[i].ReadOnly; dataSet.Fields[i].ReadOnly := false; dataSet.Fields[i].Value := valores[i]; dataSet.Fields[i].ReadOnly := readOnly; end; end; end; E no botao de pesquisa tenho o comando: // Pesquisa Código if campo_pesquisa.ItemIndex = 0 then begin dm.cdsProduto.Close; dm.cdsProduto.CommandText:='select * from produto where cod like'+QuotedStr(texto_pesquisa.Text+'%'); dm.cdsProduto.Open; if dm.cdsProduto.RecordCount = 0 then ShowMessage('Cadastro não encotrado'); end; Ao dar duplo clique no dbdrig ele abre a tela de cadastro de produtos com os dados ja duplicados, porem como disse se usar a consulta ele nao grava. -- Att Eduardo Melo 3º Sistemas de Informação - Bacharelado www.meloshospedagem.com.br [As partes desta mensagem que não continham texto foram removidas]