Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    52

    [Delphi 2009]Errore DB not in edit or insert mode

    Mi esce questo errore ma il codice è il seguente:
    Uso il database paradox e le componenti BDE.
    procedure TForm1.Button1Click(Sender: TObject);
    var i,l:integer;
    begin
    namelist:= TStringList.Create;
    FilesList:= TStringList.Create;
    Table1.Open;
    Table1.Edit;
    for i:= 0 to FilesList.Count-1 do
    begin
    Table1.Insert;
    l:= Table1.RecordCount+1;
    Table1ID.Value:= IntToStr(l+i);
    Table1Name.Value:= nameList.Strings[i]; <- mi indica questa riga come riga d'errore
    Table1Dir.Value:= FilesList.Strings[i];
    Table1.Post;
    end;
    FilesList.Free;
    NameList.Free;
    end;

    sbaglio qualcosa?

    Grazie anticipatamente!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    52
    up

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315

    Re: [Delphi 2009]Errore DB not in edit or insert mode

    Originariamente inviato da Gfff
    Mi esce questo errore ma il codice è il seguente:
    Uso il database paradox e le componenti BDE.
    procedure TForm1.Button1Click(Sender: TObject);
    var i,l:integer;
    begin
    namelist:= TStringList.Create;
    FilesList:= TStringList.Create;
    Table1.Open;
    Table1.Edit;
    for i:= 0 to FilesList.Count-1 do
    begin
    Table1.Insert;
    l:= Table1.RecordCount+1;
    Table1ID.Value:= IntToStr(l+i);
    Table1Name.Value:= nameList.Strings[i]; <- mi indica questa riga come riga d'errore
    Table1Dir.Value:= FilesList.Strings[i];
    Table1.Post;
    end;
    FilesList.Free;
    NameList.Free;
    end;

    sbaglio qualcosa?

    Grazie anticipatamente!
    ciao

    che errore esce?
    quando posti un problema cerca anche di dare quante piu' indicazioni possibili...

    come hai dichiarato queste variabili???
    namelist
    FilesList


    io penso che nel momento che crei nomelist la stessa variabile e' vuota,... di conseguenza come fai ad estrargli un valore nameList.Strings[i] ???

    fai attenzione BDE sono componenti un poco obsoleti... quando li stavo usando io mi consigliarono di utilizzare un databese diverso: Interbase/Firebird

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    52
    L'errore che mi esce è: 'Table1: dataset not in insert or edit mode'
    cmq ho tolto la parte dell'utilizzo delle stringlist per abbreviare il codice

    procedure TForm1.Button1Click(Sender: TObject);
    var i,l:integer;
    begin
    Table1.Open;
    Table1.Edit;
    for i:= 0 to FilesList.Count-1 do
    begin
    Table1.Insert;
    l:= Table1.RecordCount+1;
    Table1ID.Value:= IntToStr(l+i);
    Table1Name.Value:= nameList.Strings[i]; <- mi indica questa riga come riga d'errore
    Table1Dir.Value:= FilesList.Strings[i];
    Table1.Post;
    end;
    FilesList.Free;
    NameList.Free;
    end;

    ho pensato che dopo il Post il dataset si chiudesse quindi ho provato così:
    open;
    edit;
    begin for
    insert;
    end for
    post;

    nnt

    ho provato anche così:
    begin for
    open;
    edit;
    insert;
    post;
    end for;

    nnt anche qui...ho provato anche su Delphi 7...stesso errore.

    Ci seve essere qualcosina che nn va. Il programma deve inserire una serie di record duramte il ciclo for. I record sono tanti(migliaia).

    Le informazioni sono utili?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    prova

    table1.append

    al posto di table1.insert

    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    52
    grazie tante!

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    L'errore è probabilmente dovuto al fatto che invochi il metodo Edit e poi il metodo Insert, non si sa bene perché...

    codice:
    Table1.Open;
    Table1.Edit;
    for i:= 0 to FilesList.Count-1 do
    begin
    Table1.Insert;
    l:= Table1.RecordCount+1;
    Table1ID.Value:= IntToStr(l+i);
    Table1Name.Value:= nameList.Strings[i]; <- mi indica questa riga come riga d'errore
    Table1Dir.Value:= FilesList.Strings[i];
    Table1.Post;
    end;
    Togli la chiamata al metodo Edit, che non serve.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    52
    ok ora provo...grazie=)
    edit perchè avevo letto così in una guida, programmo da poco. =)

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    52
    Ora il problema è risolto, però ,mi esce l'errore: ' Key Violation '

    La tabella è strutturata così:
    ID string primaryindex size=5
    Name string secondary index size=255
    Type string secondary index size=40
    Year smallint secondary index
    Dir string size=255
    Details memo size=240
    campo6 memo size=240
    campo7 graphics size=240

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da Gfff
    edit perchè avevo letto così in una guida
    Sì, però immagino fosse inserito in un contesto, e comunque non assieme a Insert.

    Originariamente inviato da Gfff
    Ora il problema è risolto, però ,mi esce l'errore: ' Key Violation '
    Hai inserito un record che ha la stessa chiave primaria (che lo identifica univocamente) uguale a quella di un altro record già presente.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.