![]() |
Re: Suche geeignete Komponente ?
Hallo Vader,
das gehört so:
SQL-Code:
Grüße vom marabu
SELECT b.*, be.name, w.bezeichnung
FROM bestellungen b, besteller be, waren w WHERE be.id = b.besteller_id AND w.id = b.waren_id; |
Re: Suche geeignete Komponente ?
Liste der Anhänge anzeigen (Anzahl: 1)
hallo marabu
er zeigt jetzt alles im dbgrid, aber wenn ich einen neuen datensatz anlegen will kommt die fehlermeldung mfg vader |
Re: Suche geeignete Komponente ?
Hallo Vader,
passe die SQL-Statements in den UpdateObjects an (damit keine AutoIncrement-Spalten vorkommen), setze in den Queries CachedUpdates auf True und vervollkommne deine Aktionsschalter. Zum Beispiel das Speichern einer neuen Bestellung mit Button6:
Delphi-Quellcode:
Wie stellst du eigentlich sicher, dass du wirklich etwas lernst, wenn wir dir jeden noch so kleinen Fehler im Eiltempo korrigieren?
procedure TForm1.Button6Click(Sender: TObject);
begin with Query3 do begin Post; ApplyUpdates; DisableControls; Close; Open; EnableControls; end; end; Besorgte Grüße vom marabu |
Re: Suche geeignete Komponente ?
da hast du schon recht mit dem lernen, ich habe es soweit mein wissen es zulässt die datenbank gemacht,
aber jetzt sehe ich vor lauter bäume den wald nicht mehr !! du schreibst : Zitat:
mfg vader |
Re: Suche geeignete Komponente ?
Ist auf einem Feld der Datenbank autoinc aktiviert, darf diese Feld nicht durch die SQL-Abfrage gesetzt werden!
|
Re: Suche geeignete Komponente ?
danke !
mfg vader |
Re: Suche geeignete Komponente ?
hallo marabu,
hab das jetzt so realisiert wie du das gemeint hast im beitrag #13 glaube ich
Delphi-Quellcode:
// funktion zum erzeugen des lookupfeldes im dbgrid
function tform1.CreateLookupField: TField; begin Result := TStringField.Create(Query1); with Result do begin Name := Query1.Name + FieldName; Size := 50; DisplayLabel := 'Firma'; DisplayWidth := 12; FieldName := 'ANREDE2'; Lookup := true; LookupDataSet := query2; KeyFields := 'ANR_ID'; LookupKeyFields := 'ID'; LookupResultField := 'Phrase'; DataSet := Query1; Index := 2; end; end; // erzeugt das lookupfield im dbgrid procedure TForm1.FormCreate(Sender: TObject); var i: Integer; f: TField; begin with Query1 do begin Query1.Close; // SQL Statement festlegen Query1.SQL.Text := 'SELECT * FROM firma'; // Spalten analysieren FieldDefs.Update; // persistente Felder erzeugen for i := 0 to FieldDefs.Count - 1 do with FieldDefs[I] do if DataType <> ftUnknown then begin f := CreateField(Self); // Schlüsselfelder verstecken f.Visible := Copy(f.FieldName, Length(f.FieldName) - 1, 2) <> 'ID'; end; end; CreateLookupField; Query1.Open; end; das funzt jetzt super, aber ein neues problem habe ich, wo ich nicht weiter komme, und zwar meine suchfunktion geht jetzt nicht mehr bei dem feld "phrase" , weil ich ja die Firmennamen von einer anderen tabelle bekomme ( anreden ), aber ich bräuchte dort auch eine suchfunktion ? und die fehlermeldung kommt auch
Delphi-Quellcode:
so schaute meine suchfunktion aus :
keine übereinstimmung der typen im ausdruck
Delphi-Quellcode:
mfg vader
procedure TForm1.Button6Click(Sender: TObject);
var suche: string; begin with Query1 do begin Query1.Close; Query1.SQL.Text := 'SELECT * FROM firma WHERE (Firmenname like :suche) OR (Bezeichnung like :suche)OR (Name like :suche)'; Query1.ParamByName('suche').asString := Edit1.Text + '%'; Query1.Open; end; end; |
Re: Suche geeignete Komponente ?
Hi
Du schreibst, dass der Firmenname aus einer anderen Tabelle stammt, in deinem Query kommt aber nur eine Tabelle vor. Ich denke, die zweite Tabelle mit dem Firmennamen müsste schon mit einem JOIN eingebunden werden. Ist 'Firmenname' etwa der Fremdschlüssel und vom Typ Integer? Oder verstehe ich Dein Anliegen nicht richtig? Dein Fehler entsteht durch eine Differenz der Datenbank- und Parametertypen in Delphi. Ausserdem: Ich möchte nicht meckern, doch der ursprüngliche Titel dieses Themas hat eigentlich nicht mehr viel mit dem Inhalt zu tun. Wäre es nicht sinnvoller den Titel zu ändern (etwas aussagekräftiger). Ich bin durch den Eintrag von mkinzer auf den Thread gestossen. Zitat:
Danke und nochmals sorry wegen der Kritik. |
Re: Suche geeignete Komponente ?
hallo aschne1
du schreibst : Zitat:
kannst du das einmal posten wie das geht ? mfg vader |
Re: Suche geeignete Komponente ?
Hallo Vader,
der benötigte JOIN steht bereits in Beitrag #36 (Prinzip) bzw. #41 (angepasst an dein Demo-Projekt). Offensichtlich hast du inzwischen einer weitere Tabelle FIRMA erzeugt, von der niemand hier Aufbau und Inhalt kennt. Das macht es schwierig gemeinsam an einer Lösung zu arbeiten. Freundliche Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 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