AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Hilfe bei SQL Abfrage Firebird
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei SQL Abfrage Firebird

Ein Thema von burn · begonnen am 18. Jul 2008 · letzter Beitrag vom 18. Jul 2008
Antwort Antwort
Seite 3 von 4     123 4      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#21

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 11:58
Zitat von burn:
Für was ist das wichtig ???
Anzahl der Datensätze, ungefähr ? Ich will einschätzen können, ob es überhaupt produktiv ist, das unbedingt über die DB zu machen. Frauen gehören um die Uhrzeit aber besser in die Küche.
Gruß
Hansa
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#22

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 12:10
Hallo Burn,

die Frage mit dem Vorhandensein von entsprechenden Daten, meinte ich nicht böse, sorry, wenn es so rübergekommen ist.

Das darf sein:
  • abc/12345
    abc\12345
    abc\12345a
    abc/12345X
das darf nicht sein:
  • abc/123a
    abc\12346
    abc\1244
Deine Abfrage geht auf:
  • abc_xyz
d. h.:

Es werden nur Inhalte verglichen, bei denen in Feld1 ein Wert steht, der genau 7 Zeichen lang ist. Demnach wird hier keiner der von Dir aufgeführten falschen Werte gefunden.

Ausgehend von Deinen Beispieldaten gehe ich einmal davon aus, das Dir 3 Zeichen vor / und \ bekannt sind,
das dann 5 Ziffern und eventuell ein Buchstabe folgen.

Damit kommen wir eventuell weiter:

Wir setzen in den Filter das, was richtig ist:
Delphi-Quellcode:
TextTeil1 := 'abc';
TextTeil2 := '12345';

s := AnsiUpperCase(TextTeil1 + '_' + TextTeil2 + '_');
sagen der Datenbank aber, dass wir genau das nicht gefunden haben wollen, indem wir vor das like ein NOT stellen:
Delphi-Quellcode:
QSuche.SQL.Add('Select Feld1, Feld2, Feld3 from Tabelle where ');
QSuche.SQL.Add('UPPER(FELD1 COLLATE DE_DE) NOT like ' + QuotedStr(s));
Hoffe, das bringt Dich jetzt weiter.

Stephan
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#23

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 12:18
@mkinzler

Das teste ich heut abend mal aus ... jetzt leider keine Zeit ...

@Hansa

DB -> 105 Tabellen -> Die Tabelle die ich abfrage hat im Moment ca. 50000 Datensätze

@nahpets

Zitat:
die Frage mit dem Vorhandensein von entsprechenden Daten, meinte ich nicht böse, sorry, wenn es so rübergekommen ist.
Ist es nicht ...

Zitat:
ausgehend von Deinen Beispieldaten gehe ich einmal davon aus, das Dir 3 Zeichen vor / und \ bekannt sind,
das dann 5 Ziffern und eventuell ein Buchstabe folgen.
5 ziffern oder 4 Ziffern oder 3 Ziffern bald auch 6 Ziffern ...
und dann etweder mit Buchstabe oder auch ohne ...

Also wird das nix mit der Abfrage mit NOT.


mfg Burn
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#24

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 12:39
@mkinzler

Hab mir doch mach schnell die Zeit genommen für eine Testabfrage mit den Substring..
(Lassen wir mal meine eigentliche Arbeit einfach liegen )

Das könnte tatsächlich funzen ... werde das aber heute abend nochmal genauer untersuchen.
Danke Dir schon mal den Tip...



Melde mich wieder falls das Problem noch nicht behoben sein sollte..

Auch Dank an die anderen die mir helfen wollten ...

Schönes WE ...

mfg Burn
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 12:43
Ist halt nicht so performant
Markus Kinzler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#26

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 12:54
Hallo,

heute bin ich schwer von Begriff:

Das darf sein (wobei a für einen beliebige Buchstaben steht)?
  • abc/123
    abc\123
    abc/123a
    abc\123a
    abc/1234
    abc\1234
    abc/1234a
    abc\1234a
    abc/12345
    abc\12345
    abc/12345a
    abc\12345a
    abc/123456
    abc\123456
    abc/123456a
    abc\123456a
Was vor dem / und \ stehen ist (für eine Abfrage) immer gleich?
Sind die ersten drei Zeichen hinter / und \ auch immer gleich?

Würde das bedeuten, dass die von Dir gesuchten Werte immer kleiner oder größer als Dein Suchbegriff wären?

Dann könnte das helfen:
SQL-Code:
select * from tabelle
where upper(feld1 collate DE_DE) < upper('abc/12345')
or upper(feld1 collate DE_DE) > upper('abc/12345z')
or upper(feld1 collate DE_DE) < upper('abc\12345')
or upper(feld1 collate DE_DE) > upper('abc\12345z')
Stephan
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#27

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 13:00
@mkinzler
Jep hab ich grad gemerkt ...

Und noch ein Problem tritt auf:

Wie mach ich das: ich will alles zu 123 finden:

also 123, 123a, 123b

aber nicht 1234, 1235 etc


@ stephan

Das teste ich alles heut abend ... ich glaub mein Hirn platzt gleich
zu viel Input

Zitat:
Was vor dem / und \ stehen ist (für eine Abfrage) immer gleich?
Sind die ersten drei Zeichen hinter / und \ auch immer gleich?
1. Ja -> nur verschiedene Schreibeweisen Bsp: abc, ABC, aBc Abc etc
2. nein.

mfg Burn
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 13:11
... where Upper(name) Starting with 'ABCand upper(substring( name from 4 for 1)) in ('A'..'Z') and ...
Markus Kinzler
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#29

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 13:26
@ mkinzler
Zitat:
upper(substring( name from 4 for 1)) in ('A'..'Z')
hier meckert mich mein Prog. an ... anscheinend wird das in ('A'..'Z') nicht unterstüzt

edit :

Aber es geht in ('A','B','C','D') Und nun is Ende Gelände ... Muss erstmal den ganzen Input von heute aufn Punkt bringen...
Und dann schaun mer mal..

Nu aber wirklich ... Schönes WE ...




mfg Burn
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 13:47
Oh war ja Delphi Syntax
aber Between 'Aand 'Z' sollte gehen
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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:12 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