AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Tabelle durchsuchen ohne Angabe eines Feldnamens
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle durchsuchen ohne Angabe eines Feldnamens

Ein Thema von smart · begonnen am 3. Dez 2011 · letzter Beitrag vom 4. Dez 2011
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#1

Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 14:49
Datenbank: ABS • Version: 6.8 • Zugriff über: DataSource
Halle,

wie kann ich eine Tabelle ohne Angabe von Feldnamen, also die ganze Tabelle durchsuchen?
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 15:03
Direkt überhaupt nicht. Man könnte dynamisch die Felder der Tabelle ermitteln und dann in diesen suchen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 15:11
Direkt überhaupt nicht. Man könnte dynamisch die Felder der Tabelle ermitteln und dann in diesen suchen.
ist es nicht möglich eine Tabelle so ähnlich wie eine Stringliste zu durchsuchen?
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 15:39
Mir wird ganz schlecht bei dem was ich jetzt schreibe...
Delphi-Quellcode:
Found := -1;
While not DS.EOF and (Found=-1) do
  begin
    For i := 0 to DS.FieldCount - 1 do
       begin
           if pos(Uppercase(Search),Uppercase(DS.Fields[i].asString))>0 then
             begin
                 Found := i;
                 break;
             end;
       end;
  if found=-1 then DS.Next;
  end;
(ungetestet)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi ( 3. Dez 2011 um 22:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 15:46
Mir wird ganz schlecht bei dem was ich jetzt schreibe...
Mir auch, wenn ich den Einsatz von Pos>0 und Upper oder Lowercase lese, wo man einfach ContainsText (case insensitive) oder ContainsStr (case sensitive) benutzen könnte

Zu dem eigentlichen Problem eine kleine Rückfrage: Willst du eine Tabelle in der Datenbank durchsuchen (also per SQL) oder hast du ein DataSet in deinem Program? Bei letzterem könnte Locate helfen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 3. Dez 2011 um 15:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 16:04
@Stevie
Ja der Befehl schreibt sich kürzer....
ich hatte mich vor längerem trotzdem für meine Version entschieden.
Delphi-Quellcode:
var
 tc:Cardinal;
 i:Integer;
begin
    tc := GetTickCount;
    for I := 0 to 10000000 do
        begin
          ContainsStr('Ein kleiner Text mit wenig Inhalt','TEXT');
        end;
    Memo2.Lines.Add(IntToStr(GetTickCount - tc));

    tc := GetTickCount;
    for I := 0 to 10000000 do
        begin
          Pos(UPPERCASE('TEXT'),UPPERCASE('Ein kleiner Text mit wenig Inhalt'));
        end;
    Memo2.Lines.Add(IntToStr(GetTickCount - tc));

end;
4727
3916
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 16:56
Performance gegen Korrektheit einzutauschen find ich nen schlechten Deal - such mal mit deiner Version nach Umlauten - von Unicode fang ich jetzt mal nicht an.

Außerdem musst du ContainsText vergleichen, denn du machst eine case insensitive Suche - die schneidet beim direkten Zeitvergleich noch schlechter ab.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 3. Dez 2011 um 16:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 17:26
Ich geb mich geschlagen ....
In einer "üblichen" Umgebung schlägt zwar die AnsiUppercase Variante immer noch bei weitem die Containstextvariante, aber was ist heute noch "üblich"
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#9

AW: Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 18:13
Wieso klappt dieser Code nicht?
      Form1.ABSTable1.Locate(Form1.ABSTable1.Fields['*'].DisplayName , Edit1.Text,[loPartialKey]); in Edit1 seht der zu suchende Text.
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: Tabelle durchsuchen ohne Angabe eines Feldnamens

  Alt 3. Dez 2011, 18:54
Auch wenn du als Abfrage
Code:
select * from table
hast, wirst du kein field haben, was als Name '*' hat. Wenn du in allen Feldern suchen willst musst du als ersten Parameter für Locate die Liste aller Felder abgeben, in denen du suchen willst - durch Semikolon getrennt.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 11:47 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