AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TSQLQuery mit verschiedenen Tabellen benutzen
Thema durchsuchen
Ansicht
Themen-Optionen

TSQLQuery mit verschiedenen Tabellen benutzen

Ein Thema von MadMason · begonnen am 9. Nov 2002 · letzter Beitrag vom 13. Nov 2002
Antwort Antwort
MadMason

Registriert seit: 9. Nov 2002
Ort: Altenburg
126 Beiträge
 
Delphi 2005 Architect
 
#1

TSQLQuery mit verschiedenen Tabellen benutzen

  Alt 9. Nov 2002, 11:23
Ich hab eine TSQLQuery mit der ich zuerst eine SELECT Abfrage an eine Tabelle table1 und lese ein paar Werte per FieldValue aus.
Dann mach ich eine SELECT Abfrage an eine andere Tabelle table2 und immer wenn ich FieldValue ausführe kommt die Fehlermeldung:
Feld nicht gefunden.

Wenn ich aber eine 2. TSQLQuery nehme funktioniert es einwandfrei.
Gibt es eine Möglichkeit mit einer TSQLQeury auszukommen??
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 10. Nov 2002, 10:51
Hallo MadMason,

hast du die Felder der ersten SQL Query über den Feldeditor als persistente Felder der Anwendung hinzugefügt? Dann gibt es nämlich Probleme. Ansonsten versuch doch einmal FieldByName, das funktioniert bei mir imer recht gut.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
MadMason

Registriert seit: 9. Nov 2002
Ort: Altenburg
126 Beiträge
 
Delphi 2005 Architect
 
#3
  Alt 11. Nov 2002, 17:40
Nein hab ich nicht
  Mit Zitat antworten Zitat
DKamps

Registriert seit: 7. Nov 2002
Ort: Unna
30 Beiträge
 
Delphi 7 Enterprise
 
#4

TSQLQuery

  Alt 12. Nov 2002, 16:45
Sei versichert, dass das funktioniert, wenn Du keine persistenten Felder erzeugst. Vielleicht kennt die Tabelle das Feld nicht, oder Du überschreibst an irgendeiner Stelle das SQL.
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#5
  Alt 13. Nov 2002, 10:44
Hallo MadMason! 8)

Die Ursache für Dein Fehle kann verschieden Grunde haben... aber... falls Du vielleicht gar keine Komponente TQuery auf Dein Formular „ziehen“ möchtest kannst Du dein Query dynamisch erzeugen...so...das habe ich auf die „Schnelle“ für Dich gebastelt:

Gruß

Paul Jr.

Code:
// Erzeugt dynamisch eine Query-Componente
FUNCTION CreateQuery(VAR Query: TQuery; Frm: TForm; sDatabaseName : STRING): Boolean;
BEGIN
   Result := True;
   TRY
      Query := NIL;
      Query := TQuery.Create(Frm);
      Query.DatabaseName := sDatabaseName;
      Query.SQL.Clear; // muß nicht sein...
   EXCEPT
      ON E:Exception DO
      BEGIN
         Result := FALSE;
         IF Query <> NIL THEN
            BEGIN
               Query.Free;
               Query := NIL;
            END;
         ShowMessage( E.Message + #10 + 'Dynamisches Query konnte nicht erzeugt werden!');
         Sysutils.Abort;
      END;
   END;
END;

PROCEDURE TfrmMain.Button1Click(Sender: TObject);
VAR
   Query : TQuery;
BEGIN
   IF CreateQuery(Query, Self, 'MeinDataBase') THEN
      BEGIN
         // hier bestücke die SQL-Anweisung usw... mach was Du willst :-)
         // also z.B.:
         Query.SQL.Add('SELECT * FROM KUNDE');
         TRY
            Query.Open;
            (... weitere Anweisungen...)
         EXCEPT
            (* dummy *)
         END;
         Query.Close;
      END;

   // Und nicht vergessen:
   IF Query <> NIL THEN
      Query.Free;
END;
  Mit Zitat antworten Zitat
DKamps

Registriert seit: 7. Nov 2002
Ort: Unna
30 Beiträge
 
Delphi 7 Enterprise
 
#6

TSQLQuery

  Alt 13. Nov 2002, 11:08
Ist das Problem vielleicht, dass Du SQL.Clear vergessen hast.
Dann srteht nämlich das alte Select-Statement noch in der Query und Du erlebst Böses, wenn Du einfach mit SQL.ADD(MySelectString) Deine neue Abfrage hinzufügst.
Ich schreibe gerne SQL.Text := MySelectString
In Delphi 7 gibt es ein TSimpleDataSet mit CommandText vom Typ String statt SQL.
Der Vorschlag von MadMason ist natürlich auch nicht zu verachten, nur ist die Nachprogrammierung der visuellen Komponenten nicht so ganz einfach, insbesondere bei persistenten Feldern. Meine Erfahrung eines Wochenendes vor meinem Notebook stelle ich aber gerne zur Verfügung.
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#7
  Alt 13. Nov 2002, 11:31
Hallo DKamps, 8)

... nun sollte er SQL.Clear vergessen haben...und eine neue SQL-Anweisung dazu addieren dann, wie ich meine, würde sich schon ganz stark die Datenbank selbst mit einem SQL-Fehler melden...oder...?... aber alles ist Möglich... ... vielleicht fügt er gar keine neue SQL-Anweisung hinzu... nun dann wäre deine Vermutung richtig...


Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:35 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