DBGrid RowCount ??



  • Hallo,

    ich würde gerne im DBGrid die Datensätze die angeziegt werden zählen lassen.. bisher hatte ich nur FieldCount gefunden weobei er aber die Entiäten zählt und nicht die Darin enthaltenen Datenmengen..

    BSp.

    KundeName

    Hans
    Peter
    Heino
    Fritz

    Ergebnis = 4...

    Also was ich damit vor habe...
    eine for schleife die so lange durchläuft sowie die anzahl der einträge ist.
    und bei jedem schleifenduchrlauf geht er ein datensatz weiter wodurch DBText1
    einen neuen Wert aus der Zelle enthält der in das Memo eingtragen wird.. Letztendlich habe ich dann die ganzen Einträge in einem Memo... ist dies machbar ?



  • du kannst einfach die mit dem DBGRid verknüpfte Datenmenge in einer Schleife abarbeiten, z.B.

    for (Query1->First();!Query1->Eof;Query1->Next())
      {
      Memo1->Lines->Add(Query1->Fields->Fields[0]->AsString); 
      }
    


  • Danke, Perfekt genau das was ich brauche



  • geht das ganze auch SQL mäßig zu machen

    jetzt soll er alle Datensätze nehmen aber und denn und denn bestimmen also eine Abfrage



  • Hallo

    DU hast doch schon eine Query. Benutzt diese doch zum eingrenzen der Abfragemenge.
    Ansonsten kannst du natürlich auch noch vor dem Add den Wert gemäß der Kriterien mit den AnsiString-Methoden überprüfen.

    bis bald
    akari



  • Linnea schrieb:

    du kannst einfach die mit dem DBGRid verknüpfte Datenmenge in einer Schleife abarbeiten, z.B.

    for (Query1->First();!Query1->Eof;Query1->Next())
      {
      Memo1->Lines->Add(Query1->Fields->Fields[0]->AsString); 
      }
    

    ööhhhmmm .... steh ich jetzt auf dem Schlauch oder ???? 😕

    DBGrid1->DataSource->DataSet->RecordCount
    


  • @rama
    lies mal azad187 1. Post komplett durch...



  • Linnea schrieb:

    @rama
    lies mal azad187 1. Post komplett durch...

    Ja und ???
    Schon mal in der Hilfe nach der Eigenschaft RecordCount geschaut ?

    Beschreibung

    Mit RecordCount können Sie die Gesamtzahl der Datensätze im Recordset-Objekt der Datenmenge ermitteln. Der Wert kann zusammen mit der Eigenschaft RecNo verwendet werden, um in einer Schleife über alle Datensätze zu iterieren. Normalerweise werden dazu aber die Methoden First, Last, MoveBy und Prior zusammen mit den Eigenschaften Eof und Bof verwendet.

    RecordCount enthält nur dann einen gültigen Wert, wenn die Datenmenge aktiv ist. Wenn die Anzahl der Datensätze nicht ermittelt werden kann, ist RecordCount -1.



  • Alles schön und gut das Hilft mir aber alles nichts wenn dieses SQL ding nie so will wie ich meine uery enthält folgedens

    SELECT db.BENUTZER1, db.PRIVAT
    FROM db
    WHERE (Tiximail.PRIVAT)=0;

    und er nervt mich das "Keine Übereinstimmung der Typen im Ausdruck" sind wieso



  • Hast du schon SQL Grundlagen gehabt ?
    Was ist Tiximail ?



  • Tiximail ist ne andere tabelle die ist aber auch selected habe naja 2 jahre mit access was gemacht aber bie c++ mit sql ist irgendwie alles anders..als das sql von ms access 😃



  • Tiximail ist ne andere tabelle ...

    Woher soll SQL das wissen ?

    SELECT ... FROM db,Tiximail ...



  • Habe doch gesagt die ist schon Select der fehler auch nicht
    es gibt nur darum warum er da son müll produziert 😃 auch wenn ich Tiximail mit db ersetze kommt das gleiche...



  • azad187 schrieb:

    ... auch wenn ich Tiximail mit db ersetze kommt das gleiche...

    Wie bitte ? Wer hat was von ersetzen gesagt ?



  • Mag ja sein, daß Du was mit Access gemacht hast. Deine Kenntnisse von SQL sind jedenfalls nicht allzu groß.

    Ja natürlich gibt es verschiedene Dialekte von SQL (Bsp. Access SQL!=MS-SQL-Server SQL), denn nur ein Teil ist standardisiert und auch der ist in den verschiedenen DBMS (Datenbankmangegementsystemen) teilweise abweichend implementiert.

    SELECT Tabelle1.SpalteX, Tabelle1.SpalteY,Tabelle2.SpalteZ
    FROM Tabelle1,Tabelle2
    WHERE Tabelle1.SpalteN=Tabelle2.SpalteN
    and Tabelle2.Bedingung=0;

    wäre ein möglicher Select über mehrere Tabellen.



  • man nochmal auf deutsch

    SELECT db.BENUTZER1, db.PRIVAT
    FROM db
    WHERE (db.PRIVAT)=0;

    sostehst unter Query1->Sql-Add("");



  • Ich geh mal davon aus, Dein Query ist so aufgebaut:

    //schließt, falls Query läuft
    if (Query->Active)
       Query->Close();
    
    //Löscht alten Inhalt von Property-SQL
    Query->SQL->Clear();
    //shcreibt neuen Select-String in Property-SQL
    Query->SQL->Add("select ....");
    //frührt Query (erneut) aus
    Query->SQL->Open();
    

    Oder?



  • schon gut hat sich erledigt ich benutze jetzt eine andere methode um den inhalt zu prüfen....


Anmelden zum Antworten