Delphi 7 Ado Dataset not in Edit or Insert mode

Asked

Viewed 1,187 times

2

I’m doing a program on Delphi 7 with Access (I know it’s old stuff). But it’s making the mistake when I try to record in a very simple thing.

tblPerguntas.Open;
tblPerguntas.Insert;
tblPerguntaspergunta.Value := edtPergunta.Text;
tblPerguntasControle.Value := 0;
tblPerguntasArquivo.value := edtMusica.Text;
tblRespostasResposta.Value := edtCerta.text;
tblPerguntas.Post;

Where am I missing? Remembering that table tblPerguntas field ID is self numbering.

2 answers

1

as stated above the error is why the table is not in edit or insert mode follows the change in the code:

//inicio do seu código 
tblPerguntas.Open; 
tblPerguntas.Insert; 
//coloque a tabela em modo de edição 
tblPerguntas.edit; 
tblPerguntaspergunta.Value := edtPergunta.Text; 
tblPerguntasControle.Value := 0; 
tblPerguntasArquivo.value := edtMusica.Text; 
tblRespostasResposta.Value := edtCerta.text; 
tblPerguntas.Post;

0

As this error occurs when your table is not in Insert or Edit mode, check the state of the table before saving. See:

// Faltou Definir a forma de Edição / Inclusão para 
// a Tabela tblRespostas
//
tblRespostas.Open;
tblPerguntas.Open;

Try  

    tblRespostas.Insert;
    tblPerguntas.Insert;

    // Importante verificar, pois pode ocorrer algum erro antes
    // da atribuição dos valores aos campos.
    // Ex: Erro em OnOpen, OnNewRecord, OnConnect Etc.
    //
    If ( tblRespostas.State In [ dsInsert, dsEdit ] ) And
      ( tblPerguntas.State In [ dsInsert, dsEdit ] ) Then
    Begin
        tblPerguntaspergunta.Value := edtPergunta.Text;
        tblPerguntasControle.Value := 0;
        tblPerguntasArquivo.value := edtMusica.Text;
        tblRespostasResposta.Value := edtCerta.text;
        tblPerguntas.Post;
        tblRespostas.Post; // Inclua esta tabela tambem
    End;

Finally
   tblRespostas.Close;
   tblPerguntas.Close;
End;

Don’t forget to declare "DB" in the Uses clause.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.