![]() |
Re: SQL Statements verknüpfen
Nur ein Verdacht:
Sind Deine Attribute vom Typ String? Wenn ja, dann solltest Du Anführungszeichen um die Werte machen. Also wie :
Code:
sonst denkt das Datenbanksystem, dass Du einen Satz abfragen willst, dessen Feld Attributname gleich dem Feld abc ist.
WHERE Attributname = "abc" and ...
|
Re: SQL Statements verknüpfen
Auch wenn der String von " eingeschlossen ist kommt dieser Fehler! Die Felder in der Tabelle sind alles Strings, ja.
|
Re: SQL Statements verknüpfen
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:
Das ist nur ein einfaches Bsp., was natürlich viel einfacher mit einem Where gemacht werden könnte!
Select Personal.PersonalId, Personal.PersonalName
From Personal Where PersonalId<100 Union Select Personal.PersonalId, Personal.PersonalName From Personal Where (PersonalId>200) and (PersonalId<300)
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 |
Re: SQL Statements verknüpfen
So ganz kapier ich nicht was Union eigentlich macht, verknüpft es die untere mit der oberen Select-Anweisung?
|
Re: SQL Statements verknüpfen
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 |
Re: SQL Statements verknüpfen
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" |
Re: SQL Statements verknüpfen
hast du es schon mit single quotes versucht? (#39: ')
|
Re: SQL Statements verknüpfen
Funktioniert nicht, dann würde mein String irgendwo zu früh aufhören, oder wo würdest du die setzen?
|
Re: SQL Statements verknüpfen
Zitat:
|
Re: SQL Statements verknüpfen
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''"; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 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