| Autor |
Beitrag |
Josef-B
      
Beiträge: 293
2003 Server, Win7, Win8
Delphi 2010 Pro, Firebird 2.5
|
Verfasst: So 13.04.03 20:33
Ich habe eine Interbase Datenbank, die ist auch angeschlossen. Über die IB Console krieg ich auch SQL Abfragen hin.
Wie programmiert man das in Delphi, wo genau kommen die Befehle hin?
Die Verbindung zur Datenbank besteht zu diesen Daten über die BDE.
Ich habe eine TGRID und will dort Kunden auswählen. Der Suchbegriff ist in einem TEDIT
|
|
kiwicht
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: So 13.04.03 21:32
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Mo 14.04.03 07:41
Hi
Wenn du über BDE auf eine IB Datenbank zugreifen willst brauchst du:
- TDatabase - Stellt die Verbindung zur Datenbank her
- TQuery - Holt Daten über SQL oder
- TTable - Stellt eine Tabelle dar
- TDataSource - Stellt die Verbindung zur den Steuerelementen dar
Allerdings würde ich den Zugriff über BDE nicht empfehlen. Wesenlich effizenter funktionert das mit den entsprechenden IBX-Komponenten:
- TIBDatabase
- TIBTransaktion
- TIBDataset
- TDatasource
Allerdings macht das auch ein bisschen mehr Arbeit. Aber es lohnt sich wirklich die zu investieren.
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
Josef-B 
      
Beiträge: 293
2003 Server, Win7, Win8
Delphi 2010 Pro, Firebird 2.5
|
Verfasst: Mo 14.04.03 21:11
Titel: +aber nächste Frage
Danke für die Tips. Das hat erstmal geklappt.
Jetzt habe ich ein Tedit und will eine Abfrage zum Suchen nach dem Inhalt dieses Tedit machen.
meine Select Anweisung lautet:
Select from KUNDEN where NAME_1 like %+edit1.text%.
Was ist an der Syntax nicht richtig. Ich weiß nicht wie das richtig heißt bei dem %......., mit Anführungsstrichen ?
|
|
Udontknow
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Di 15.04.03 08:05
Ja, genau, mit Anführungsstrichen.
Query1.SQL.Text:='Select * from KUNDEN where NAME_1 like "%'+edit1.text+'%" '
Cu,
Udontknow
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Di 15.04.03 08:45
Als Ergänzung sei noch gesagt: InterBase erwartet Zeichenkettenliterale normalerweise in einfachen Anführungszeichen. Es kann also sein, dass du mit der Variante Schwierigkeiten bekommst, z. B. wenn du Ojektnamen verwendest die ebenfalls in Anführungszeichen einzuschliessen sind.
Mein Vorschlag deshalb:
Quelltext 1: 2:
| Query1.SQL.Text:='Select * from KUNDEN where NAME_1 like ' + QuotedStr( '%' + edit1.text + '%'); |
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
Udontknow
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Di 15.04.03 08:55
Soweit ich weiss, kommt das auf den DB-Dialect an. Bei Dialect 1 ist es jedenfalls zulässig, der 3er unterstützt es aber dagegen nicht mehr (man korrigiere mich, wenn ich was falsches sage).
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Di 15.04.03 10:04
| Udontknow hat folgendes geschrieben: | | (man korrigiere mich, wenn ich was falsches sage). |
Nein! Ich bestätige dich 
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|