AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Suche geeignete Komponente ?
Thema durchsuchen
Ansicht
Themen-Optionen

Suche geeignete Komponente ?

Ein Thema von Vader · begonnen am 17. Mai 2006 · letzter Beitrag vom 22. Mai 2006
Antwort Antwort
Seite 5 von 6   « Erste     345 6      
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#41

Re: Suche geeignete Komponente ?

  Alt 20. Mai 2006, 19:38
Hallo Vader,

das gehört so:

SQL-Code:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#42

Re: Suche geeignete Komponente ?

  Alt 20. Mai 2006, 20:35
hallo marabu
er zeigt jetzt alles im dbgrid, aber wenn ich einen neuen datensatz anlegen will kommt die fehlermeldung
mfg vader
Miniaturansicht angehängter Grafiken
fehler_199.jpg  
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#43

Re: Suche geeignete Komponente ?

  Alt 20. Mai 2006, 21:13
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:
procedure TForm1.Button6Click(Sender: TObject);
begin
  with Query3 do
  begin
    Post;
    ApplyUpdates;
    DisableControls;
    Close;
    Open;
    EnableControls;
  end;
end;
Wie stellst du eigentlich sicher, dass du wirklich etwas lernst, wenn wir dir jeden noch so kleinen Fehler im Eiltempo korrigieren?

Besorgte Grüße vom marabu
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#44

Re: Suche geeignete Komponente ?

  Alt 20. Mai 2006, 22:38
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:
passe die SQL-Statements in den UpdateObjects an (damit keine AutoIncrement-Spalten vorkommen),
da weiß ich nicht mehr was genau gemeint ist ohne beispiel !
mfg vader
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Suche geeignete Komponente ?

  Alt 20. Mai 2006, 23:08
Ist auf einem Feld der Datenbank autoinc aktiviert, darf diese Feld nicht durch die SQL-Abfrage gesetzt werden!
Markus Kinzler
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#46

Re: Suche geeignete Komponente ?

  Alt 21. Mai 2006, 12:04
danke !
mfg vader
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#47

Re: Suche geeignete Komponente ?

  Alt 21. Mai 2006, 22:23
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

keine übereinstimmung der typen im ausdruck so schaute meine suchfunktion aus :

Delphi-Quellcode:
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;
mfg vader
  Mit Zitat antworten Zitat
aschne1

Registriert seit: 18. Jul 2004
Ort: Davos
64 Beiträge
 
Delphi 2005 Professional
 
#48

Re: Suche geeignete Komponente ?

  Alt 21. Mai 2006, 22:58
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:
Edit mit Autocompletion?
Wie implementierst Du so etwas? Ich mache das bisher 'von Hand' mit einem Edit und VirtualStringTree. Hast Du eine bessere Lösung?


Danke und nochmals sorry wegen der Kritik.
Armin
aschne1
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#49

Re: Suche geeignete Komponente ?

  Alt 22. Mai 2006, 09:30
hallo aschne1

du schreibst :


Zitat:
Ich denke, die zweite Tabelle mit dem Firmennamen müsste schon mit einem JOIN eingebunden werden
wie geht das mit einen JOIN einbinden ?

kannst du das einmal posten wie das geht ?

mfg vader
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#50

Re: Suche geeignete Komponente ?

  Alt 22. Mai 2006, 09:39
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 6   « Erste     345 6      


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 07:23 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