AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ZQuery.Open und Sigsev

Ein Thema von Monday · begonnen am 30. Aug 2014 · letzter Beitrag vom 31. Aug 2014
Antwort Antwort
Monday

Registriert seit: 24. Aug 2012
103 Beiträge
 
FreePascal / Lazarus
 
#1

ZQuery.Open und Sigsev

  Alt 30. Aug 2014, 23:30
Datenbank: SQLite • Version: 3.8.0 • Zugriff über: Zeos 7.1
Hallo,

ich habe wieder meinen lieblingsfehler der sigsev Reihe

Ich habe eine Anwendung (wird Computerspiel) die mit MySQL arbeitet (über Zeos). Nun habe ich das ganze auf SQLite umgestellen, DB, SQL Befehle usw. Bis hier her funktioniert auch alles so wie es soll.

Nun wenn ich mein Programm starte, drücke ich auf einen Button und er schreibt und liest in der SQLite. Alles funktioniert.
Wenn ich nun ein weiteres mal auf den gleichen Button klicke, erhalte ich einen Sigsev fehler. Obwohl exakt die gleichen Schritte ausgeführt worden sind wie zuvor. Mit MySQL zuvor hat alles wunderbar geklappt.

Nun habe ich ein bisschen geforscht in welcher Zeile der Sigsev ausgelöst worden ist, und zwar hier:

Code:
    ZQuery2.Close; ZQuery2.SQL.Clear;
    if db_version = 'sqlite' then begin ZQuery2.SQL.Text := 'SELECT count(fen) as max FROM verlauf where tief = :i;'; end;
    ZQuery2.ParamByName('i').AsInteger := tief2;
    ZQuery2.Open; // <- Hier kommt der Sigsev
Für mich eher unlogisch das er ausgerechnet in diesen Abschnitt auftritt. Beim ersten Durchlauf bzw. ersten Klick hat ja noch alles geklappt. Beim zweiten auf einmal nicht mehr - warum?

An den Select kann es nicht liegen, die Variable tief2 ist auch ein gültiger Wert. Sigsev deutet ja auf eine Speicherverletzung hin.
Also ist meine Vermutung das es irgendwie an der Datenbank selbst liegt, das dort zuviel Speicher verbraucht ist, irgendwas zuviel ist,... aber das übersteigt meine Kenntnisse. Muss man da irgendwas freigeben, unlocken o.ä.??
Das würde zumindest erklären, warum es erst funktioniert, und dann nicht mehr. Zumal ja vorher schon ein paar Selects und inserts gemacht worden sind. Vermute ich, dass es an dieser Stelle "Zuviel" geworden ist.

Das ganze findet innerhalb einer transaction statt. Aber auch wenn ich die transaction auskommentiere, kommt der Fehler.

Hat jemand noch Ideen oder Lösungsvorschläge??

Lg,
Monday
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: ZQuery.Open und Sigsev

  Alt 31. Aug 2014, 10:43
Vielleicht stimmt die Bedingung nicht, dann wäre der Parameter nicht definiert.Was passiert denn, wenn Du das end hinter das Open setzt?
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
Monday

Registriert seit: 24. Aug 2012
103 Beiträge
 
FreePascal / Lazarus
 
#3

AW: ZQuery.Open und Sigsev

  Alt 31. Aug 2014, 15:01
Hallo,

vielen Dank für deine Antwort. Dein Tipp führte zu keiner Veränderung.

Ich denke, ich habe den Fehler gefunden.

Obwohl der Sigsev an den ZQuery Bereich aufgetreten ist, war der Auslöser an einer ganz anderen Stelle zuvor. Und zwar habe ich an eine if Abfrage über einen Array Bereich gemacht, was dann den Sigsev ausgelöst hat. Nun scheint es zu funktionieren.

Warum dieser Fehler erst beim zweiten Durchlauf aufgetreten ist, und offenbar gar nicht (oder selten?) als die Anwendung mit MySQL lief, finde ich schon komisch. Ich hätte das anders erwartet. Vielleicht war es einfach nur Glück, weil der Speicherbereich in dem Moment einfach "gepasst" hat.

Trotzdem Danke für die Hilfe

Lg,
Monday
  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 19:44 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