AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Daten aus Query in Array kopieren, danach Query in Inser-Mode setzen = AccessViolatio
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von bwolf · begonnen am 11. Nov 2010 · letzter Beitrag vom 11. Nov 2010
Antwort Antwort
bwolf

Registriert seit: 17. Jan 2006
368 Beiträge
 
Delphi 2009 Professional
 
#1

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

  Alt 11. Nov 2010, 13:54
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!

Geändert von mkinzler (11. Nov 2010 um 14:14 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 11. Nov 2010, 13:57
Dein Array ist um ein Element zu klein.
Zitat:
setLength(rec2,qBuchungstabelle.FieldCount -1);
->
setLength(rec2,qBuchungstabelle.FieldCount);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
bwolf

Registriert seit: 17. Jan 2006
368 Beiträge
 
Delphi 2009 Professional
 
#3

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

  Alt 11. Nov 2010, 14:13
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.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

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

  Alt 11. Nov 2010, 14:28
...allerdings ist das nicht die Ursache für mein Problem...
Sicher? Du hast deinen Speicher irgendwo überschrieben.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 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