AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Statements verknüpfen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Statements verknüpfen

Ein Thema von BBB · begonnen am 23. Aug 2006 · letzter Beitrag vom 25. Aug 2006
Antwort Antwort
Seite 2 von 3     12 3      
Peter Mössinger

Registriert seit: 26. Jul 2005
Ort: Mainz
31 Beiträge
 
Delphi 7 Professional
 
#11

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 16:03
Nur ein Verdacht:

Sind Deine Attribute vom Typ String? Wenn ja, dann solltest Du Anführungszeichen um die Werte machen.
Also wie :

Code:
WHERE Attributname = "abc" and ...
sonst denkt das Datenbanksystem, dass Du einen Satz abfragen willst, dessen Feld Attributname gleich dem Feld abc ist.
Peter Mössinger
Tischtennis-Ergebnisdienst des RTTV (Rheinhessischen TT Verbandes)
http://ergebnisdienst.rttv.de
Delphi + Kylix!!
  Mit Zitat antworten Zitat
BBB

Registriert seit: 13. Jul 2006
25 Beiträge
 
#12

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 16:23
Auch wenn der String von " eingeschlossen ist kommt dieser Fehler! Die Felder in der Tabelle sind alles Strings, ja.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 16:33
Hallo,
So richtig habe ich das erste Posting nicht verstanden
aber vielleicht kannst du es ja ohne Filter machen ...

Wenn es sich immer um die gleiche Tabelle geht,
die gleichen auszugebenden Felder und nur um verschiedene WHERE-Klauseln handelt,
könnte man auch UNION benutzen.

Bsp. Tabelle Personal
PersonalId Integer
PersonalName Char(50)
PersonGroup Integer

Dann klappt folgendes

SQL-Code:
Select Personal.PersonalId, Personal.PersonalName
From Personal
Where PersonalId<100

Union

Select Personal.PersonalId, Personal.PersonalName
From Personal
Where (PersonalId>200) and (PersonalId<300)
Das ist nur ein einfaches Bsp., was natürlich viel einfacher mit einem Where gemacht werden könnte!

SQL-Code:
Select Personal.PersonalId, Personal.PersonalName
From Personal
Where PersonalId<100

Union

Select Personal.PersonalId, Personal.PersonalName
From Personal
Join PersonGroup on PersonGroup.Id=Personal.PersonGroup
Where (PersonGroup.No=5)

Im 2. Union wird der 2. Teil der Personaltabelle über einen
"komplexeren" join ermittelt

Vielleicht hilft es ja.


Heiko
Heiko
  Mit Zitat antworten Zitat
BBB

Registriert seit: 13. Jul 2006
25 Beiträge
 
#14

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 16:50
So ganz kapier ich nicht was Union eigentlich macht, verknüpft es die untere mit der oberen Select-Anweisung?
  Mit Zitat antworten Zitat
praktiker

Registriert seit: 9. Jun 2003
Ort: Hesedorf
11 Beiträge
 
#15

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 17:38
Hallo BBB


Versuchs doch einfach mal so

AdsQuery1.Close;
AdsQuery1.SQL.Clear;
AdsQuery1.SQL.Add('SELECT * FROM "cFileName" WHERE ');
AdsQuery1.SQL.Add('PRIMNUTZER LIKE " '+UpperCase(trim(txtPrimNutz.Text))+'% " ');

Wichtig sind die doppelten Anführungszeichen und anstatt dem Sternchen musst du in SQL das Prozentzeichen setzten.
Die Trim Funktion entfernt unötige Leerzeichen vor und hinter dem Text.



Erwin
  Mit Zitat antworten Zitat
BBB

Registriert seit: 13. Jul 2006
25 Beiträge
 
#16

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 18:02
Jetzt bekomm ich dann einen Fehler,den ich auch schon mehrmals heute gesehen habe, aber mit dem ich leider nichts anfangen kann:

[...]
Either ACE could not find the specified file, or you do not have sufficent rights to access the file. Table name: cFileName'
[...]

An der Stelle hab ich dann (mehrmals) probiert anstelle von cFileName (beinhaltet: "Testtabelle.ADT"), den kompletten Pfadnamen inklusive dem Tabellennamen zu übergeben (C:\Temp\Testtabelle.ADT zB.)

Und bekomme dann

[...]
Column not found: abc1 --Location of Error in the SQL Statement is 122 (line2: column: 17)'.
[...]

An dieser Stelle würde praktisch "a" aus abc1 stehen.


//edit: Nein ich glaube dass das Zeichen 122 das "-Zeichen ist; also scheint er an dieser Stelle irgendwas ganz anderes zu erwarten!?!

//edit: Der String sieht so aus, nochmal zum Verständnis: SELECT * FROM "C:\Verzeichnis\Tabelle.Dateiendung" WHERE PRIMNUTZER LIKE "ABC1"
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#17

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 18:40
hast du es schon mit single quotes versucht? (#39: ')
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
BBB

Registriert seit: 13. Jul 2006
25 Beiträge
 
#18

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 18:43
Funktioniert nicht, dann würde mein String irgendwo zu früh aufhören, oder wo würdest du die setzen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 18:46
Zitat von BBB:
Funktioniert nicht, dann würde mein String irgendwo zu früh aufhören, oder wo würdest du die setzen?
Entweder mit QuotedStr() oder als Verdoppelung.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#20

Re: SQL Statements verknüpfen

  Alt 23. Aug 2006, 18:50
LOL

Die Delphi-Syntax hat doch mit Abfragestring nichts zu tun. Du setzt ein single quote in einen string-literal, indem du #39 als char einfügst ('nicht wie '+39'raus hier') oder indem du zwei single quotes notierst ('nicht wie ''raus').

So:

abfrage := 'SELECT * FROM "C:\Verzeichnis\Tabelle.Dateiendung" WHERE PRIMNUTZER LIKE ''ABC1''";
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 17:37 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