Delphi 7 Ado Dataset not in edit or insert mode

2

I'm doing a program in Delphi 7 with Access (I know it's old stuff). But you're giving the error when I try to write something very simple.

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

Where am I going wrong? Remember that the tblPerguntas table with ID field is auto numbering.

    
asked by anonymous 16.11.2014 / 17:43

2 answers

1

As previously stated the error is because 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;
    
20.01.2017 / 12:40
0

Because this error occurs when your table is not in Insert or Edit mode, check the table's state 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;

Do not forget to declare "DB" in the Uses clause.

    
05.03.2015 / 20:55