AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Prism ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher?
Thema durchsuchen
Ansicht
Themen-Optionen

ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher?

Ein Thema von Mavarik · begonnen am 15. Sep 2006 · letzter Beitrag vom 15. Sep 2006
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#1

ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher?

  Alt 15. Sep 2006, 12:32
Hallo Zusammen!

Ich versuche mich krampfhaft in MySQL einzuarbeiten. Es soll folgende Liste erzeugt werden:

AUTOS (10)
LKWs (3)
Motorräder (3)


in der ASPX Datei steh:
Delphi-Quellcode:
 

<%#CatList()%></p>
Und mein QuellCode sieht so aus:
Delphi-Quellcode:
function TWebForm1.CatList:string;
Var
  Connection1,
  Connection2 : IDBConnection;
  command1,
  command2 : IDbCommand;
  reader1,
  reader2 : IDataReader;
  S : String;
begin
  Connection1 := MySQLConnection.Create('server=localhost;uid=ich;pwd=wasauch;database=fahrzeuge');
  Connection2 := MySQLConnection.Create('server=localhost;uid=ich;pwd=wasauch;database=fahrzeuge');
   try
     Connection1.Open;
     Connection2.Open;
     command1 := connection1.CreateCommand();
     command2 := connection2.CreateCommand();
    try
     command1.CommandText := 'Select * from CatLookup where ID>1'; // 1=keine Auswahl

     reader1 := command1.ExecuteReader();
      try
        result := '';
        while reader1.Read() do
          begin
            S := reader1.GetString(1)+ ' (';
            command2.CommandText := 'Select COUNT(*) from Shop where Categorie='+reader1.GetString(0);
            reader2 := command2.ExecuteReader();
            try
            if reader2.Read then
              begin
                S := S + reader2.GetString(0)+')
';
                if reader2.GetInt32(0) > 0 then // Nur wenn Anzahl > 0 auch den Menuepunkt zeigen...
                  Result := result + S;
              end;
            finally
              reader2.Dispose();
            end;
          end;

      finally
        reader1.Dispose();
      end;

    finally
      command1.Dispose();
      command2.Dispose();
    end;

  finally
    Connection1.Close;
    Connection2.Close;
    connection1.Dispose();
    connection2.Dispose();
   end;
end;
Boh ist das aufwending. Geht das nicht einfacher? Werden bei MySQL wirklich 2 Connections benötigt?

Grüsse Frank
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#2

Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher

  Alt 15. Sep 2006, 12:45
Ähhhh...... mal ne ganz dumme Frage: Warum läufst Du in einer Tabelle durch und führst für jede Zeile ne eigene Abfrage durch?

Du kannst den COUNT(*) auf der anderen Tabelle doch in das erste Statement mit reinjoinen. Dann hast Du nur ein Statement dass die alle Daten liefert die Du brauchst.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher

  Alt 15. Sep 2006, 12:50
Hi!

Wie soll das den Aussehen?

Ich habe in der LookUp Tabelle die Texte der Artikelgruppen und in der Shop Tabelle "nur" das CatID. Wie kann ich jetzt in einer Abfrage den Text der einen Tabelle und das COUNT der anderen mit dem entsprechenden Filter erhalten?
Und wie soll das aussehen?

Frank
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher

  Alt 15. Sep 2006, 13:25
OK

habe mit jetzt folgendes zusammengegoogled...

SELECT CatLookup.CatText, COUNT(*) FROM CatLookup JOIN Shop on(Shop.Categorie=CatLookUp.ID) GROUP BY CatLookUp.id

Aber wo ist der unterschied zu:

SELECT CatLookup.CatText, COUNT(*) FROM CatLookup LEFT JOIN Shop on(Shop.Categorie=CatLookUp.ID) GROUP BY CatLookUp.id


Danke... Frank
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#5

Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher

  Alt 15. Sep 2006, 13:36
Ein [b]LEFT[b] Join nimmt die Linke Tabelle als Master. Alle Daten, die zu den Links gefundenen Einträgen die Join-Bedingung erfüllen werden angezeigt. Auf der rechten Seite können ggf. NULL - Values auftreten.

Ein normaler Join verwendet keinen Master. Alle Daten, die zu den Links UND rechts gefundenen Einträgen die Join-Bedingung erfüllen werden angezeigt. Auch Werte, die nur rechts sind (dort wird links dann ein NULL-Eintrag erzeugt). Gleiches für die, dies nur links gibt - hier gibts rechts einen NULL.

Ein RIGHT Join ist das gleiche wie der Left nur auf der rechten Seite, will heissen rechts gibts keine NULL's links möglicherweise, aber die rechten Daten sind Ausschlaggebend für die Ergebnismenge.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher

  Alt 15. Sep 2006, 13:54
Alles Klar, Danke...


Frank
  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:39 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