AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme mit SELECT und Strings
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit SELECT und Strings

Ein Thema von Puke · begonnen am 20. Jan 2014 · letzter Beitrag vom 21. Jan 2014
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Puke
Puke

Registriert seit: 7. Nov 2012
123 Beiträge
 
Delphi XE5 Architect
 
#1

Probleme mit SELECT und Strings

  Alt 20. Jan 2014, 17:54
Datenbank: Firebird • Version: 1.5 • Zugriff über: ZEOS Libary 7.1.2
Hi,
Irgendwie scheine ich irgendetwas nicht ganz verstanden zu haben.
Ich versuche mittels Zeos und firebird diese Abfrage zu Starten:
Code:
SELECT * FROM Tabelle WHERE MeinFeld = 'String'
Die Ausführung sieht so aus
Delphi-Quellcode:
Query.sql.clear;
Query.sql.add(...);
Query.open; // hier tritt Dann der Fehler auf
Query.first;
Die Exception
Code:
... Exception class $C0000005 with Message 'Access violaton at 0x1003ba5b: read of address 0x00000000'
Ich habe irgendwie keine Ahnung ...

Danke für Hilfe
Puke

EDIT: Passiert nur bei Strings!!!
Gruß Puke
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Probleme mit SELECT und Strings

  Alt 20. Jan 2014, 18:02
Es sihet eher danach aus, dass die Komponente nicht instantiiert ist.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Puke
Puke

Registriert seit: 7. Nov 2012
123 Beiträge
 
Delphi XE5 Architect
 
#3

AW: Probleme mit SELECT und Strings

  Alt 20. Jan 2014, 20:39
Ich habe die Abfrage schon einmal auf Integer umgewandelt! Ohne Probleme...

Das kann nicht das Problem sein
Gruß Puke
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Probleme mit SELECT und Strings

  Alt 20. Jan 2014, 20:53
Ist das wirklich die Query? Oder soll das nur ein Beispiel sein?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Probleme mit SELECT und Strings

  Alt 20. Jan 2014, 21:42
[...] Das kann nicht das Problem sein
Famous last words...
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Probleme mit SELECT und Strings

  Alt 20. Jan 2014, 23:13
Zeig' doch mal bitte, was Du hier genau machst: Query.sql.add(...); Bei .add passiert doch was anderes als ... und das SQL-Statement steht bestimmt nicht genauso anstelle der ...

Es könnte also z. B. so aussehen:
Query.sql.add('SELECT * FROM Tabelle WHERE MeinFeld = ''String'''); oder eher so?
Query.sql.add('SELECT * FROM Tabelle WHERE MeinFeld = ' + QuotedStr('String')); oder vielleicht mit Parameter? Query.sql.add('SELECT * FROM Tabelle WHERE MeinFeld = :Suchbegriff'); ok, dann fehlt in Deinem Beispiel noch das Befüllen des Parameters, dass sollte aber nicht zu dem auftretenden Fehler führen, sondern eher zu einem ungültigen SQL-Statement.

Wenn es mit Integer funktioniert und nicht mit Zeichenfolgen, dann liegt der Fehler genau in an der Stelle, die Du uns durch ... verheimlichst.
Ohne eine Info über die drei ??? (achne, dass sind ja schöne Kinderbücher ), also ohne den Inhalt der drei ... können wir bestenfalls die bemühen, die Erfolgsaussichten tendieren jedoch gegen 0.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Probleme mit SELECT und Strings

  Alt 21. Jan 2014, 05:28
Es sihet eher danach aus, dass die Komponente nicht instantiiert ist.
Würde in diesem Fall der Fehler nicht bereits bei Query.sql.clear; auftreten?
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: Probleme mit SELECT und Strings

  Alt 21. Jan 2014, 05:31
EDIT: Passiert nur bei Strings!!!
Hast du die Strings in deiner Abfrage (Query.sql.add(...); ) auch gequoted (in Hochkommas gesetzt)?
  Mit Zitat antworten Zitat
Benutzerbild von Puke
Puke

Registriert seit: 7. Nov 2012
123 Beiträge
 
Delphi XE5 Architect
 
#9

AW: Probleme mit SELECT und Strings

  Alt 21. Jan 2014, 12:20
Sollte eigentlich nur ein Beispiel sein. Na dann:
Delphi-Quellcode:
Function TFireBird.DoRelationExists(IN_Table: String; IN_Data: WideString; Var OUT_Index: Integer):Boolean;
Begin
[...]
// Wenn ich hier das StringFeld durch ein IntegerFeld ersetze und die Werte anpasse funktioniert es
// einwandfrei. Nur der Sinn kommt dann abhanden ...
SendSQlSelect('SELECT * FROM ' + IN_Table + ' WHERE ' + IN_Table + 'Name = ''' + IN_Data + '''';
[...]
End;

Procedure TFireBird.SendSQLSelect(IN_Command: String);
Begin
FdbquerySelect.SQL.Clear;
FdbquerySelect.SQL.Add(IN_Command);
FdbquerySelect.Open; // Debugger gibt hier den Fehler aus!!!
FdbquerySelect.First;
End;
Ich gehe davon aus das die Exception vom Open ausgeht, weil beim durchgehen der Prozedur mit dem Debugger bleibt der dort hängen!
Das Objekt wird während des constructors instanziiert und bleibt bis zum destructor vorhanden.
Gruß Puke
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Probleme mit SELECT und Strings

  Alt 21. Jan 2014, 12:27
Mir fällt als erstes ein fehlendes Leerzeichen bzw. Punkt vor dem 'Namen =' auf. Dadurch wird der Inhalt von IN_TABLE mit 'Name' kombiniert. Heißt das Datenbankfeld wirklich so?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:09 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