größe eines Array während der Laufzeit ändern



  • hm wozu willst Du denn die Daten aus einem Query in Strings puffern? Mit ->AsString kannst Du doch jederzeit die Tabellenwerte als String darstellen...



  • hallo Joe

    deine Antwort ist richtig. Ich möchte aber, das die Daten ständig zu verfügung stehen.

    Gruß Siegfried



  • Verstehe ich nicht. Solange Du die Query offen hast, hast Du sie doch ständig zur Verfügung. Wenn es ein Perforamceproblem sein sollte, würde ich eher lokal Access oder besser die MSDE verwenden um die Daten zwischenzuspeichern. (oder Embedded Firebird, MySQL Lite...)



  • hallo

    folgendes habe ich im Internet gefunden.

    #include <vector>
    using namespace std

    int i;
    vector<int> TestArray;
    TestArray.resize(100, 100);
    TestArray[32,10] = 6;
    TestArray[65,92] = 16;
    TestArray.resize(120, 190);
    i = TestArray[65,92];
    i = TestArray[32,10];

    was haltet ihr davon ?

    habe nur einen kleinen Test durchgeführt.
    die vorhandene Werte wurden durch das vergrößern des Array's nicht gelöscht!!!

    Gruß Siegfried



  • Was wolltest du denn damit bezwecken? TestArray[32,10] = 6; kann nicht funktionieren. Es gibt keinen op[] der einen solchen Zugriff erlaubt.

    C++ FAQ und da der 4. Punkt.



  • hallo

    mir geht es um folgendes. ich lade in einem DataModul aus eine Datenbank Werte,
    die a: ständig im Speicher vorhanden sein müssen, und b: ist in der Entwicklung
    die größe des Array nicht bekannt.
    da ich aus dem VB6 Bereich komme, und dort dieses für die Größe eines Array's
    wärend der Laufzeit mit "" (Redim myArray(55, 100)"" gelöst habe, suchte ich
    im Forum nach einer einfachen Lösung.
    Sollte ich auf dem falschem Weg sein, bin ich sehr dankbar für euere Hilfe

    Gruß Siegfried


  • Mod

    Hallo

    TestArray[32,10] = 6;
    

    funktioniert nicht

    versuchs dochmal so

    TestArray[32][10] = 6;
    

    MfG
    Klaus



  • Fürs Verständnis: Bei Datenbanken geht es grundsätzlich darum aktuelle Daten zur Verfügung zu haben, nicht die von vor ein paar Stunden (oder wann immer die Pufferung stattgefunden hat). Desweiteren sollte man das Abfragen kompletter Tabelleninhalte vermeiden, und statt dessen dem Anwender nur die relevanten Daten anzeigen, sprich die Anzahl der angezeigten Datensätze auf ein Minimum beschränken. Im optimalen Fall liefert eine DB-Abfrage nur einen einzigen Datensatz zurück. Dies reduziert die Serverbelastung und den Netzwerktraffic.

    Deine Vorgehensweise erinnert mich eher Desktopdatenbank-Zeiten. Heutzutage ruft man nicht mehr gnadenlos alle vorhandenen Datensätze ab.

    Vielleicht kannst Du die zu Grunde liegende Problematik schildern. Mir ist nicht klar, was Dein Ziel ist, also kann ich Dir auch nicht wirklich einen Rat geben.



  • hallo
    zu Beitrag 8:


    Erzeugen
    [C++ Fehler] MbccDatenbank.cpp(155): E2062 Unzulässiger Indirektionsoperator
    [C++ Fehler] MbccDatenbank.cpp(156): E2062 Unzulässiger Indirektionsoperator
    [C++ Fehler] MbccDatenbank.cpp(158): E2062 Unzulässiger Indirektionsoperator
    [C++ Fehler] MbccDatenbank.cpp(159): E2062 Unzulässiger Indirektionsoperator
    mit [x,x] funktioniert es. für mich ist unter C++ diese Schreibweise auch
    unerklärlich.

    zu Beitrag 9:
    ich bin am aufbau einer Prozess-Steuerung, und deshalb müssen gewisse Daten aus
    der Datenbank ständig im Speicher vorhanden sein sollen. Hiermit möchte ich
    erreichen, das ich ein schnelles Timing erreiche.
    Ob hier mein Vorhaben sich als gut erweist, werde ich wohl oder übel, in den
    Raum stellen.

    Gruß Siegfried



  • Vorsicht, das ist der Komma-Operator: a, b bedeutet: Werte a und b hintereinander aus, gibt das Ergebnis von b zurück. Beispiel: a=4; b = (++a, a+3) setzt b auf 8. Wenn du also [x,x] schreibst, ist das das gleiche wie einfach nur [x], keinesfalls aber eine zweidimensionale Adressierung.



  • @Beppo, Dein letztes Posting finde ich ein bißchen wirr? Offensichtlich hast Du da einiges durcheinander geworfen...

    Und wenn es um das letzte Quentchen Performance geht, wirst Du wohl nicht vermeiden können, die Daten in eigenen Strukturen zu verwalten. Zur Suche verwendet man dann balancierte binäre Suchbäume. 😮



  • Hallo,

    wo ist dann der Fehler?

    Gruß Siegfried



  • Hast Du schon einen Blick in die Hilfe zu vector geworfen?
    Ich sag nur eindimensional oder zweidimensional, das ist hier die Frage...



  • Hallo

    nein, ich habe diese noch nicht durchgelesen.

    Frage: wie würdest du dieses machen ?

    Gruß Siegfried



  • Erst einmal die Hilfe lesen (und den Link, den PuppetMaster2K Dir gegeben hat).

    Es nützt Dir gar nichts, wenn Dir hier der Code vorgegeben wírd und Du nicht wirklich was verstehst. Dann sind die nächsten (vermeidbaren) Fragen schon vorprogrammiert.



  • Hallo

    an alle vielen Dank. Muß erst alles verarbeiten.

    Gruß Siegfried

    👍


Anmelden zum Antworten