Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Daten aus Query in Array kopieren, danach Query in Inser-Mode setzen = AccessViolatio (https://www.delphipraxis.net/155878-daten-aus-query-array-kopieren-danach-query-inser-mode-setzen-%3D-accessviolatio.html)

bwolf 11. Nov 2010 12:54

Daten aus Query in Array kopieren, danach Query in Inser-Mode setzen = AccessViolatio
 
Hi Leute,

stehe grade total auf dem Schlauch.

Ich habe eine TAdsQuery, die im Edit-Mode ist.
Auf Knopfdruck will ich diese Werte in ein Array (variant) speichern, und die Query anschließend in den Insert-Mode schicken.

Folgender Code:

Delphi-Quellcode:
procedure TfrmMain.btnDuplizierenClick(Sender: TObject);
var
  rec2 : Array of Variant;
  i : integer;
  S : string;
begin
  // Werte kopieren
  setLength(rec2,qBuchungstabelle.FieldCount -1);
  for I := 0 to qBuchungstabelle.FieldCount -1 do
  begin
    // s := qBuchungstabelle.Fields[i].Value;
    rec2[i] := qBuchungstabelle.Fields[i].Value;
  end;

  // Hier knallt es:
  qBuchungstabelle.Insert;
end;
Die Werte werden einwandfrei in das Array kopiert, aber sobald ich die Query dann in den Insert-Mode setzen, gibt seine EAccessViolation:

Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt test.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 0043A21F in Modul 'test.exe'. Lesen von Adresse 00000034' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Das komische ist: Wenn ich die Werte nicht in das Array speichere, sonder dem String zuweise, dann gibt es diese AccessViolatio nicht.
Thx für eure Hilfe!

DeddyH 11. Nov 2010 12:57

AW: Daten aus Query in Array kopieren, danach Query in Inser-Mode setzen = AccessViol
 
Dein Array ist um ein Element zu klein.
Zitat:

Delphi-Quellcode:
setLength(rec2,qBuchungstabelle.FieldCount -1);

->
Delphi-Quellcode:
setLength(rec2,qBuchungstabelle.FieldCount);

bwolf 11. Nov 2010 13:13

AW: Daten aus Query in Array kopieren, danach Query in Inser-Mode setzen = AccessViol
 
Hi Deddy,

da hast du natürlich recht. allerdings ist das nicht die Ursache für mein Problem...
Das befüllen des Arrays ist ja erfolgreich, erst beim wechseln in den Insert-Mode tritt die Violation auf.

shmia 11. Nov 2010 13:28

AW: Daten aus Query in Array kopieren, danach Query in Inser-Mode setzen = AccessViol
 
Zitat:

Zitat von bwolf (Beitrag 1060956)
...allerdings ist das nicht die Ursache für mein Problem...

Sicher? Du hast deinen Speicher irgendwo überschrieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz