Selecao DevMedia QUERO SER PRIME

Fórum erro (not in edit mode) #325332

14/07/2006

0

bom dia galera.... seguinte tenho dois formularios do meu sistema que começaram a dar problemas depoisque eu formatei a maquina e instaçe-o novamente... o erro é ´not in edit mode´, quando eu vou salvar (post, applyupdates).

A unica coisa que tem diferente agora de antes da formatação é a versao do firebird que agora é 1.5.3 e antes era 1.5

abraços!


Mahdak

Mahdak

Responder

Posts

14/07/2006

Paulo

Bem, se pudesse postar parte do código, ficaria melhor, mas pelo que estou entendendo, sua Query ou Table, não está em edição. Você não deu um INSERT ou APPEND ou EDIT, antes de postar no banco.


Responder

Gostei + 0

14/07/2006

Mahdak

Paulo, eu ja usava esse codigo antes sem problemas, mesmo assim irei postar ele aqui:

Botão ´Novo´, onde o sistema abre e da um inset no banco e joga o codigo num edit pro usuario ver
procedure TCabos.Btn_NovoClick(Sender: TObject);
begin
DM.Tbl_Cabos.Open;
    DM.Tbl_Cabos.Insert;
    Edit_Codigo.text := FormatFloat(´0000000´,StrToFloat(IntToStr(DM.Tbl_CabosCODIGO.AsInteger)));
    Edit_Nome.SetFocus;
end;


Botão salvar, vou comentar a parte do código onde começa o problema
procedure TCabos.Btn_SalvarClick(Sender: TObject);
var
regiao, bairro : integer;
begin
     if Edit_Nome.Text = ´´ then
        ShowMessage(´Campo Nome está vazio, por favor verifique.´)
     else
        begin
            if Combo_Dir.Text <> ´´ then
            begin
                // Diretorios
                DM.Tbl_Diretorios.SelectSQL.Clear;
                DM.Tbl_Diretorios.SelectSQL.add(´SELECT * FROM Diretorio WHERE NOME = ´´´ + Trim(Combo_Dir.Text) + ´´´´ );
                DM.Tbl_Diretorios.Close;
                DM.Tbl_Diretorios.open;
                
            end
                else
                    begin
                        // Passa Batido
                    end;


            if Combo_Regiao.Text <> ´´ then
            begin
                // Regiao
                DM.Tbl_Bairro.SelectSQL.Clear;
                DM.Tbl_Bairro.SelectSQL.add(´SELECT * FROM BAIRRO WHERE NOME = ´´´ + Trim(Combo_Regiao.Text) + ´´´´ );
                DM.Tbl_Bairro.Close;
                DM.Tbl_Bairro.open;
                Regiao := DM.Tbl_BairroCODIGO.AsInteger;

            end
                else
                    begin
                        // Passa Batido
                    end;




            if Combo_Edificio.Text <> ´´ then
            begin
                // Edificios
                DM.Tbl_Edificios.SelectSQL.Clear;
                DM.Tbl_Edificios.SelectSQL.add(´SELECT * FROM Edificios WHERE EDIFICIO = ´´´ + Trim(Combo_Edificio.Text) + ´´´´ );
                DM.Tbl_Edificios.Close;
                DM.Tbl_Edificios.open;

            end
                else
                    begin
                        // Passa Batido
                    end;



            if Combo_Cidade.Text <> ´´ then
            begin
                // Cidade
                DM.Tbl_Cidade.SelectSQL.Clear;
                DM.Tbl_Cidade.SelectSQL.add(´SELECT * FROM Cidade WHERE NOME = ´´´ + Trim(Combo_Cidade.Text) + ´´´´ );
                DM.Tbl_Cidade.Close;
                DM.Tbl_Cidade.open;

            end
                else
                    begin
                        // Passa Batido
                    end;



            if Combo_UF.Text <> ´´ then
            begin
                // UF
                DM.Tbl_UF.SelectSQL.Clear;
                DM.Tbl_UF.SelectSQL.add(´SELECT * FROM ESTADO WHERE SIGLA = ´´´ + Trim(Combo_UF.Text) + ´´´´ );
                DM.Tbl_UF.Close;
                DM.Tbl_UF.open;

            end
                else
                    begin
                        // Passa Batido
                    end;


            if Combo_Bairro.Text <> ´´ then
            begin
                // Bairro
                DM.Tbl_Bairro.SelectSQL.Clear;
                DM.Tbl_Bairro.SelectSQL.add(´SELECT * FROM Bairro WHERE NOME = ´´´ + Trim(Combo_Bairro.Text) + ´´´´ );
                DM.Tbl_Bairro.Close;
                DM.Tbl_Bairro.open;
                bairro := DM.Tbl_BairroCODIGO.AsInteger;

             end
                else
                    begin
                        // Passa Batido
                    end;


            if Combo_Rua.Text <> ´´ then
            begin
                // Logradouro
                DM.Tbl_Logradouro.SelectSQL.Clear;
                DM.Tbl_Logradouro.SelectSQL.add(´SELECT * FROM Logradouro WHERE NOME = ´´´ + Trim(Combo_Rua.Text) + ´´´´ );
                DM.Tbl_Logradouro.Close;
                DM.Tbl_Logradouro.open;

            end
                else
                    begin
                        // Passa Batido
                    end;


            // AQUI É ONDE DA O ERRO
            DM.Tbl_CabosNOME.AsString                  := Edit_Nome.Text;

            DM.Tbl_CabosNASCIMENTO.AsString            := NASCIMENTO.text;

            DM.Tbl_CabosFONE1.AsString                 := Edit_Fone1.Text;

            DM.Tbl_CabosFONE2.AsString                 := Edit_Fone2.Text;

            DM.Tbl_CabosEMAIL.AsString                 := Edit_Mail.Text;

            DM.Tbl_CabosCODIGO_DIR.AsInteger           := DM.Tbl_DiretoriosCODIGO.AsInteger;

            DM.Tbl_CabosCODIGO_REGIAO.AsInteger        := Regiao;

            DM.Tbl_CabosCODIGO_EDIFICIO.AsInteger      := DM.Tbl_EdificiosCODIGO.AsInteger;

            DM.Tbl_CabosBLOCO.AsString                 := Edit_Bloco.Text;

            DM.Tbl_CabosAPTO.AsString                  := Edit_Apto.Text;

            DM.Tbl_CabosCODIGO_CIDADE.AsInteger        := DM.Tbl_CidadeCODIGO.AsInteger;

            DM.Tbl_CabosCODIGO_UF.AsInteger            := DM.Tbl_UFCODIGO.AsInteger;

            DM.Tbl_CabosCEP.AsString                   := Edit_CEP.Text;

            DM.Tbl_CabosCODIGO_BAIRRO.AsInteger        := Bairro;

            DM.Tbl_CabosCODIGO_LOGRADOURO.AsInteger    := DM.Tbl_LogradouroCODIGO.AsInteger;

            DM.Tbl_CabosNUMERO.AsString                := Edit_Numero.Text;

            DM.Tbl_CabosIMEDIACOES.AsString            := Edit_Imediacoes.Text;

            DM.Tbl_CabosDATA_CADASTRO.AsDateTime       := Date;


            DM.Tbl_Cabos.Post;

            DM.Tbl_Cabos.ApplyUpdates;

            ShowMessage(´Cabo Eleitoral Cadastrado Com Sucesso.´);

            Principal.UserControl.Log(´USUARIO CADASTROU O CABO ELEITORAL ´+ Edit_Nome.text + ´ NO SISTEMA´);

           
            end;


end;



Responder

Gostei + 0

17/07/2006

Night_man

Opa, pelo oq eu vi esta tudo normal,

uma vez, em oracle, tive um problema similar, eu colocava o dataset em edit, mas ele nao entrava, dai fiz o seguinte,


while not (Dataset.state in [dsEdit, dsInsert]) do
  dataset.edit;


Eh bem idiota, mas funcionou.... vai saber


Responder

Gostei + 0

08/07/2009

Rweberich

Ola...

Eu uso o Firebird 2.1.0, e tive o mesmo problema quando prescisaava recuperar o RecordCaunt de uma IBQuery.
A solucao que encontrei foi antes de dar um IBQuery1.Open, fazer a tabela que buscava o registro ficar em modo Edit;
Ex:

tblProduto.Edit;
qyCodigo.Close;
qyCodigo.SQL.Clear;
qyCodigo.SQL.Add(´SELECT * FROM PRODUTO WHERE CODIGO =´+´´´´+ edtCodigo.Text+´´´´);
qyCodigo.Open;
if qyCodigoAutomatico.RecordCount = 1 then
begin
ShowMessage(´O código ´+(edtCodigo.Text)+´ ja existe´);
tblProduto.Cancel;
end;

Espero te-lo ajudado...

Abraco.


Responder

Gostei + 0

09/07/2009

Mahdak

Ola... Espero te-lo ajudado... Abraco.


obrigado, voce me ajudou 3 anos depois de eu ter postado eheheheh


Responder

Gostei + 0

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

Aceitar