Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   selektieren von blob- und varchar-feldern (https://www.delphipraxis.net/180735-selektieren-von-blob-und-varchar-feldern.html)

HPB 13. Jun 2014 08:23

Datenbank: Interbase • Version: XE3 • Zugriff über: Delphi

selektieren von blob- und varchar-feldern
 
Guten Tag Delphianer,
das Selektieren von BLOB- und Varcharfeldern in einer gemeinsamen Abfrage will nicht so wie ich es möchte.
Hier meine Selection:

SQL-Code:
select
   PROTOKOLLE.DATUM,
   PROTOKOLLE.BAUVORHABEN,
   PROTOKOLLE.ANWBAULEITUNG,
   PROTOKOLLE.ANWBAUHERR,
   PROTOKOLLE.ANWFIRMEN,
   BILDER.BILDNAME,
   BILDER.BILD
from
   BAUTGBPROTOKOLLE protokolle
      join BAUTGBPROTBILDER bilder on PROTOKOLLE.BAUTGBPROTOKOLLID = BILDER.BAUTGBPROTOKOLLID
where
   PROTOKOLLE.BAUTGBPROTOKOLLID = :pProtokollID
Die BLOB-Felder in der Abfrage sind:
Bauvorhaben und Bild

Als Fehlermeldung wird ausgegeben:
Field "BAUVORHABEN" not found.
SQL Code: 41
IB Error Number: 0
----------------------
Nehme ich die Blobfelder aus der Abfrage wird alles wie gewünscht ausgegeben.
Wenn ich "select * from bautgbprotokolle" selektiere werden alle Felder ohne Beanstandung ausgegeben
und ich kann auch auf die BLOB-Felder zugreifen.
Wie muss ich die Abfrage gestalten, damit die Blobfelder mit ausgegeben werden?

Vielen Dank für die Hilfe im Voraus.
HPB

mkinzler 13. Jun 2014 08:32

AW: selektieren von blob- und varchar-feldern
 
Eigentlich sollte das so funktionieren. Hast du die Abfrage mal in einem AdminTool oder mit anderen Komponenten getestet?

HPB 13. Jun 2014 08:49

AW: selektieren von blob- und varchar-feldern
 
Zitat:

Zitat von mkinzler (Beitrag 1262141)
Eigentlich sollte das so funktionieren. Hast du die Abfrage mal in einem AdminTool oder mit anderen Komponenten getestet?

Guten Tag mkinzler,
vielen Dank für die Antwort.
Ich habe den SQL-Manager von EMS mit dem ich die Datenbanken verwalte und
Abfragen teste.
Und eben in diesem Tool wird die Fehlermeldung erzeugt.
Mit Gruß
HPB

himitsu 13. Jun 2014 08:52

AW: selektieren von blob- und varchar-feldern
 
An der Groß- und Kleinschreibung liegt es nicht?

SQL-Code:
select
   PROTOKOLLE.DATUM,
from
   BAUTGBPROTOKOLLE as protokolle
protokolle ... PROTOKOLLE


Muß denn immer die Tabelle angegeben werden?

SQL-Code:
select
   PROTOKOLLE.DATUM,
   BAUVORHABEN,
   ANWBAULEITUNG,
   ANWBAUHERR,
   ANWFIRMEN,
   BILDNAME,
   BILD
from
   BAUTGBPROTOKOLLE as protokolle
      join BAUTGBPROTBILDER as bilder on PROTOKOLLE.BAUTGBPROTOKOLLID = BILDER.BAUTGBPROTOKOLLID
where
   PROTOKOLLE.BAUTGBPROTOKOLLID = :pProtokollID
Wenn die Feldnamen eindeutig sind, dann sollte man das auch weglassen können ... vielleicht geht es ja dann.

Wass passiert bei
SQL-Code:
SELECT bautgbprotokolle.* FROM bautgbprotokolle
?

mkinzler 13. Jun 2014 09:03

AW: selektieren von blob- und varchar-feldern
 
Zitat:

Wenn die Feldnamen eindeutig sind, dann sollte man das auch weglassen können ... vielleicht geht es ja dann.
Besser ist es aber diese immer anzugeben.

himitsu 13. Jun 2014 09:10

AW: selektieren von blob- und varchar-feldern
 
Wir haben hier noch an fast allen Tabellenfeldern so komische Prefixe, da ist das fast nie ein Problem. :angel2:

Und ich dacht mir halt, weil BAUVORHABEN nicht gefunden wird, aber protokolle.BAUVORHABEN ja vorhanden sein sollte. :stupid:

HPB 13. Jun 2014 09:12

AW: selektieren von blob- und varchar-feldern
 
Guten Tag himutsu,
Zitat:

Zitat von himitsu (Beitrag 1262154)
An der Groß- und Kleinschreibung liegt es nicht?

nein, es liegt nicht an der Groß- Kleinschreibung.

SQL-Code:
select
   PROTOKOLLE.DATUM,
   BAUVORHABEN,
   ANWBAULEITUNG,
   ANWBAUHERR,
   ANWFIRMEN,
   BILDNAME,
   BILD
from
   BAUTGBPROTOKOLLE as protokolle
      join BAUTGBPROTBILDER as bilder on PROTOKOLLE.BAUTGBPROTOKOLLID = BILDER.BAUTGBPROTOKOLLID
where
   PROTOKOLLE.BAUTGBPROTOKOLLID = :pProtokollID
[/CODE]
Diese Selectabfrage führ auch nicht zum Ziel.
Es wird die gleiche Fehlermeldung "Bauvorhaben not found usw." ausgegeben.

Alle angegebenen Tabellenfelder sind vorhanden und wurden auch korrekt geschrieben.
Gruß HPB

mkinzler 13. Jun 2014 09:20

AW: selektieren von blob- und varchar-feldern
 
Versuch es mal mit kürzeren Aliasen:

SQL-Code:
select
   p.DATUM,
   p.BAUVORHABEN,
   p.ANWBAULEITUNG,
   p.ANWBAUHERR,
   p.ANWFIRMEN,
   b.BILDNAME,
   b.BILD
from
   BAUTGBPROTOKOLLE p
      join BAUTGBPROTBILDER b on b.BAUTGBPROTOKOLLID = p.BAUTGBPROTOKOLLID
where
   p.BAUTGBPROTOKOLLID = :pProtokollID;

DeddyH 13. Jun 2014 09:22

AW: selektieren von blob- und varchar-feldern
 
Aber nicht 2 Mal denselben Alias ;)

mkinzler 13. Jun 2014 09:24

AW: selektieren von blob- und varchar-feldern
 
Zitat:

Zitat von DeddyH (Beitrag 1262165)
Aber nicht 2 Mal denselben Alias ;)

Hab es korrigiert. :oops:

HPB 13. Jun 2014 09:32

AW: selektieren von blob- und varchar-feldern
 
Zitat:

Zitat von mkinzler (Beitrag 1262164)
Versuch es mal mit kürzeren Aliasen:

Vielen Dank für den Hinweis.
Mit den kurzen Aliasen klappt es auch.
Schönes, sonniges Wochenende an allen Helfern.
HPB

Bernhard Geyer 13. Jun 2014 09:59

AW: selektieren von blob- und varchar-feldern
 
Unter

http://code.metager.de/source/xref/m.../interbase.cfg

gibts einen Eintrag

max_select_alias_name

Evtl. spielt der ja hier eine Rolle

HPB 13. Jun 2014 10:52

AW: selektieren von blob- und varchar-feldern
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1262175)
Unter

http://code.metager.de/source/xref/m.../interbase.cfg

gibts einen Eintrag

max_select_alias_name

Evtl. spielt der ja hier eine Rolle

Vielen Dank für den Hinweis.
Ich werde in Zukunft mit kurzen Aliasen arbeiten, dann bin ich auf der sicheren Seite.
Gruß
HPB

mkinzler 13. Jun 2014 10:54

AW: selektieren von blob- und varchar-feldern
 
Ich finde die Abfragen mit kurzen Aliasen auch lesbarer

p80286 13. Jun 2014 11:17

AW: selektieren von blob- und varchar-feldern
 
Zitat:

Zitat von mkinzler (Beitrag 1262186)
Ich finde die Abfragen mit kurzen Aliasen auch lesbarer

Ja und nein, Ich halte es für eine Unsitte solche Konstrukte zu basteln:
Code:
from Table1 t1 join Table2 t2 ...
               join Table3 t3
               join Table4 t4
               join Table5 t5
               join Table6 t6
where t1.id>77 and t2.wert1=45 and (t3.feld2=t1.feld99 or (t4.fld2=t5.feeld))
 and not exists(select * from Tabelle77 tb77 where tb77=t2.ttt)
Etwas aussagekräftiger dürften die Aliase schon sein.

Gruß
K-H

Dejan Vu 13. Jun 2014 11:33

AW: selektieren von blob- und varchar-feldern
 
Wir verwenden konsistente Abkürzungen als aliase. 'Customer' ist immer 'cu', 'Invoices' immer 'iv' etc.
Man gewöhnt sich sehr schnell dran.

PS: Man muss ja keine Aliase à la 't1', 't2' etc. verwenden (außer bei einem self join)

p80286 13. Jun 2014 11:57

AW: selektieren von blob- und varchar-feldern
 
Damit kann ich leben

Gruß
K-H

himitsu 13. Jun 2014 12:37

AW: selektieren von blob- und varchar-feldern
 
Zitat:

Zitat von HPB (Beitrag 1262184)
Ich werde in Zukunft mit kurzen Aliasen arbeiten, dann bin ich auf der sicheren Seite.

Der Witz ist ja, daß es laut Definition genau andersrum ist.

Code:
max_table_alias_name=255      # table alias name length
max_table_name=32         # table name length
Tabellennamen haben eine kleine Maximallänge, aber als Alias "kann" man etwas gaaaaaanz Langes verwenden. :lol:

Bernhard Geyer 13. Jun 2014 12:53

AW: selektieren von blob- und varchar-feldern
 
Zitat:

Zitat von himitsu (Beitrag 1262196)
Zitat:

Zitat von HPB (Beitrag 1262184)
Ich werde in Zukunft mit kurzen Aliasen arbeiten, dann bin ich auf der sicheren Seite.

Der Witz ist ja, daß es laut Definition genau andersrum ist.

Code:
max_table_alias_name=255      # table alias name length
max_table_name=32         # table name length
Tabellennamen haben eine kleine Maximallänge, aber als Alias "kann" man etwas gaaaaaanz Langes verwenden. :lol:

Ist aber fraglich ob evtl. die gesamte Alias-Bezeichnungslänge damit gemeint ist.
Ich würde hier nicht davon ausgehen das jede Alias-Angabe 255 Zeichen lang sein darf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.

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