AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQLQuery funtioniert nicht richtig
Thema durchsuchen
Ansicht
Themen-Optionen

SQLQuery funtioniert nicht richtig

Ein Thema von traudl · begonnen am 6. Feb 2006 · letzter Beitrag vom 7. Feb 2006
Antwort Antwort
Seite 1 von 2  1 2      
traudl

Registriert seit: 22. Jun 2004
Ort: Lauterach
37 Beiträge
 
Delphi 7 Enterprise
 
#1

SQLQuery funtioniert nicht richtig

  Alt 6. Feb 2006, 13:09
Datenbank: AbsolutDB • Version: 5.02 • Zugriff über: ABSQuery
Hallo DPler ich hab ein ganz doofes Problem. Ich möchte wenn ich in einem DBGrid auf den Namen klicke, dass es nach dem ColumnNamen sortiert wird. Es funktioniert auch nur verändert er die Colunmbreite. Wenn ich einen Haltepunkt einfüge um zu sehen ob er alles richtig macht, geht es und er lässt die Breite wie sie ist.
Genauso ist es beim Laden eines Bildes mit Haltepunkt geht es, ohne nicht.

Hier der Query zum sortieren.

Code:
procedure TMainFrm.grdKundenTitleClick(Column: TColumn);
var i: integer;
    s: String;
begin
      for i := 0 to grdKunden.Columns.Count -1 do begin
          if Column.Index = i then begin
            qryKunden.Close;
            qryKunden.SQL.Clear;
            s:= grdKunden.Columns[i].FieldName;
            qryKunden.SQL.Add('SELECT * FROM kunden ORDER BY ' + s);
            qryKunden.Open;
          end;
      end;
end;
und hier der zum laden eines Bildes.

Code:
procedure TMainFrm.qryBilderAfterScroll(DataSet: TDataSet);
var Str: TMemoryStream;
begin
  btnSave.Enabled := DataSet.RecordCount > 0;  // MainFrm
  Str := TMemoryStream.Create;
    try
    TBlobField(DataSet.FieldByName('Datei')).SaveToStream(Str);
    Str.Position := 0;
    if Str.Size = 0 then begin
      imgPLBild.Picture.Graphic := nil;
      Exit;
    end;
    if imgPLBILD.Picture.Graphic = nil then
      imgPLBILD.Picture.Graphic := TJPEGImage.Create;
    imgPLBILD.Picture.Graphic.LoadFromStream(Str);
    imgPLBild.Repaint;
  finally
      Str.Free;
  end; // finally
end;
Ich hab echt keine Idee mehr, zumal ich mit der Programmierung eh nicht so fit bin und das meine erste Datenbank ist.

Ich hoffe Ihr könnt mir helfen.
Udo Kinscherf
Ich versuche mein Bestes, aber im Moment reichts noch nicht.
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#2

Re: SQLQuery funtioniert nicht richtig

  Alt 6. Feb 2006, 14:03
Hi !

Zitat von traudl:
Code:
procedure TMainFrm.grdKundenTitleClick(Column: TColumn);
var i: integer;
    s: String;
begin
      for i := 0 to grdKunden.Columns.Count -1 do begin
          if Column.Index = i then begin
            qryKunden.Close;
            qryKunden.SQL.Clear;
            s:= grdKunden.Columns[i].FieldName;
            qryKunden.SQL.Add('SELECT * FROM kunden ORDER BY ' + s);
            qryKunden.Open;
          end;
      end;
end;
Die Spaltenbreite sollte sich eigentlich nicht ändern.
Versuchs mal so: (die Schleife ist nicht notwendig)

SQL-Code:
procedure TMainFrm.grdKundenTitleClick(Column: TColumn);
begin
  qryKunden.Close;
  qryKunden.SQL.Clear;
  qryKunden.SQL.Add('SELECT * FROM kunden ORDER BY ' + Column.FieldName);
  qryKunden.Open;
end
Hast du persistente columns im DBGrid ?

Verwende doch für das Bild ein DBJpeg (aus der Unit DBJpeg)
Otto
  Mit Zitat antworten Zitat
traudl

Registriert seit: 22. Jun 2004
Ort: Lauterach
37 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: SQLQuery funtioniert nicht richtig

  Alt 6. Feb 2006, 14:22
Ich habe die Schleife weggelassen, aber das Resultat ist das Gleiche, mit Haltepinkt OK, ohne nicht.
Im Moment sind die Columns alle persistent.
Kann es sein das ein Zeitproblem vorliegt ? Ich hab auch schon einen Dalay(1000) eingebaut vor dem Query, geht aber auch nicht.
Udo Kinscherf
Ich versuche mein Bestes, aber im Moment reichts noch nicht.
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#4

Re: SQLQuery funtioniert nicht richtig

  Alt 6. Feb 2006, 14:32
Hab ich befürchtet.

Eine gute Gelegenheit SQLGrid auszuprobieren !

SQLGrid
Otto
  Mit Zitat antworten Zitat
traudl

Registriert seit: 22. Jun 2004
Ort: Lauterach
37 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: SQLQuery funtioniert nicht richtig

  Alt 6. Feb 2006, 14:35
Hab noch was rausgefunden
wenn ich es richtig umständlich programmiere geht es auch

Delphi-Quellcode:
     if column.index = 1 then begin
          qryKunden.Close;
          qryKunden.SQL.Clear;
          usw....
auch hier bleibt die Spaltenbreite.
Udo Kinscherf
Ich versuche mein Bestes, aber im Moment reichts noch nicht.
  Mit Zitat antworten Zitat
traudl

Registriert seit: 22. Jun 2004
Ort: Lauterach
37 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: SQLQuery funtioniert nicht richtig

  Alt 6. Feb 2006, 14:41
Hallo Ferber, ich probier den Grid heute abend aus, wenn ich wieder im Hotel bin. Ich denke 50 MEG mit dem Handy freut den Chef nicht so sehr und Spaß machts auch nicht.

Was ich komisch finde ist das es mit dem Haltepunkt geht. Was passiert da ?? Mein Bild läd auch nur mit dem Haltepunkt. Kann es an der Querykomponente selbst liegen ???
Udo Kinscherf
Ich versuche mein Bestes, aber im Moment reichts noch nicht.
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#7

Re: SQLQuery funtioniert nicht richtig

  Alt 6. Feb 2006, 14:46
Versuch mal vor dem sortieren folgendes:
SelectedIndex:=Column.Index D5 / D7 verändert SelectedIndex beim Titleklick nicht, BDS2006 reagiert anders.
Vielleicht hilfts !?

Edit: Ist abhängig von Options - dgColumnResize
Otto
  Mit Zitat antworten Zitat
WePo

Registriert seit: 11. Jan 2006
Ort: Buttenheim
20 Beiträge
 
Delphi 6 Professional
 
#8

Re: SQLQuery funtioniert nicht richtig

  Alt 6. Feb 2006, 19:52
Hi,
Habe dein Prog probiert.
Gibt es bei dir eigentlich keine Fehler wenn man mehrfach auf Spalten clickt?
Delphi-Quellcode:
for i := 0 to grid.Columns.Count -1 do
            if Column.Index = i then
              s:= grid.Columns[i].FieldName;
            q.Close;
            q.SQL.Clear;
            q.SQL.Add('SELECT * FROM table ORDER BY ' + s);
            q.Open;
Ohne persistente Felder der query werden die Spalten aber noch immer geändert, da die query geschlossen und neu erstellt wird. Dann greift das dbgrid auf die Felder-Standardbreite zurück. Bei float-feldern wird standardmäßig displaywidth=10 eingestellt. Schau mal im Objektinspector diesen Wert deiner Felder nach.
Setze also im OI den Wert displaywidth auf die gewünschhte column-breite.
Werner
Machen wir dem Fehlerteufel einen Knoten in den Schwanz
  Mit Zitat antworten Zitat
traudl

Registriert seit: 22. Jun 2004
Ort: Lauterach
37 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: SQLQuery funtioniert nicht richtig

  Alt 6. Feb 2006, 23:41
Hallo,

bin erst jetzt im Hotel. Hab gleich mal probiert ob es bei mir Fehler gibt wenn ich mehrmals die Titelleiste anklicke. Nö alles normal. Ich muss meine Felder in diesem Grid vordefinieren, da ich foreign Keys habe und diese nicht anzeigen möchte. Wenn aber wüsste wie ich das umgehen kann, würde ich das tun. In meinen Cols stehen ja Werte drin, die breite stimmt ja auch bis zu dem Zeitpunkt an dem ich den Query ausführe.
Udo Kinscherf
Ich versuche mein Bestes, aber im Moment reichts noch nicht.
  Mit Zitat antworten Zitat
WePo

Registriert seit: 11. Jan 2006
Ort: Buttenheim
20 Beiträge
 
Delphi 6 Professional
 
#10

Re: SQLQuery funtioniert nicht richtig

  Alt 7. Feb 2006, 00:29
Hi,
Zitat:
In meinen Cols stehen ja Werte drin, die breite stimmt ja auch bis zu dem Zeitpunkt an dem ich den Query ausführe.
Spricht für mich dafür,daß du die Spalten-Breite des dbgrids angepaßt hast.
Bitte lies noch mal meinen Vorschlag durch. Ich rede von Breite/displaywidth der persistenen Felder.
Daß bei dir kein Fehler bei dem Code auftaucht verstehe ich auch nicht so ganz. Das DBgrid hat doch mehrere Spalten, oder nicht.
Hast du mal unterschiedliche Spalten angeclickt?
Dein code macht nämlich folgendes:
er geht über alle Spalten, falls Treffer query schließen und neu öffnen.
Dann muß aber das Dbgrid sich auf die neue query einstellen, während du noch in deiner Schleife bist. Bei mir (D6 prof) hagelts.
Werner
Machen wir dem Fehlerteufel einen Knoten in den Schwanz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:46 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