Export von Daten aus DB



  • double	m_Zaehler;
    

    Das mit der Artikelnummer ist mir völlig unbegreiflich! Ich weiß nicht ob da die DB ein Tab rein macht oder so. aber ich mein ich kann es ja in einen lokalen String kopieren. wie meinst du als Zeichenkette anhängen?? als char[]??

    Rebuild all bringt übrigens auch nichts!

    P.S.: Ich wär grad schier durchgedreht! Ich hab zwar ne Spalte Artikelnr erzeugen lassen aber nichts rein geschrieben. Ich schau in das Excelfile rein und es steht was drin! Ich hab gedacht ich geh die Wand hoch!
    Dann ist mir aber aufgefallen, dass die Motornummer so groß war dass es nur so aussah, es war aber auch genau an der Linie wo sonst der Strich ich Leerzeichen drin. Aber eigentlich kann der doch dann nicht einfach über mehrere Felder schreiben. Aber das ist ja ganz egal!



  • Ein double, die Null ist ein Rundungsfehler. 🙄
    Die Erklärung gibts irgendwo, hat was damit zu tun, wie doubles gespeichert werden.

    doubles musst du mit %f statt %d formatieren. Oder nimm einen long zum zählen - wieso zählst du überhaupt mit einer Kommazahl? 😕



  • aaaaaaaaaaahhhh

    warum ich mit double zähle kann ich dir nicht sagen, das sind alles die Datentypen wie sie auch in der DB stehen! Da hab ich nichts mit zu tun!

    Und das mit der Zeichenkette? char [] ??



  • Nö, CString.

    CString str1 = "Hallo";
    CString str2 = "Welt";
    CString str3 = str1 + " " str2;
    


  • OK sorry stand glaub aufm schlauch. Wenn ich es so mache, dann bringt er zwar kein Fehler beim formaten, aber beim schreiben ins File. dann führt er den Befehl gar nicht zu ende durch. Naja dann schieb ich das mal nach hinten vielleicht ergibt sich ja was.

    Aber ich hätte noch ne andere Frage wie mache ich ne meldung while working? Ich wollte einfach nen dialog erzeugen und wenn er fertig ist mit worken den Dialog destroyen aber wenn ich den dialog modale dann geht er mir gar nicht erst in meine export FKT bis ich aus dem Fenster zurück komm.

    Hast mir was schönes??



  • Naja, die Alternative ist ein nicht-modaler Dialog. Den machst du mit Create. 🙂
    Oder du schreibst einfach bevor es los geht

    CWaitCursor csr;
    

    und der User kriegt ne Sanduhr. 😃



  • 👍 so solls sein!
    Aber wenn wir grad schon am spinnen sind ( also ich halt) ich hätte gern nen Dialog in dem ich den Status in ner Progressbar darstelle (da es doch schon mal ein paar minuten gehen kann, bis 40000 Datensätze bei 156 Splaten konvertiert sind.)
    Was meinst du? schaff ICH sowas? Als Info ich counte ja eh schon immer die Teile, von dem her müsste ich das ja leicht errechnen können. Frage ist nur wie bekomme ich den Dialog mit der Progressbar in den Vordergrund, ohne dass es meinen Export blockiert??

    Dank dir, bist echt klasse!



  • Also, der Dialog ist nicht schwer, das schaffst du mindestens so weit wie ich.
    Meiner funktioniert nämlich nur halb. 🙄

    Es ist ein einfacher Dialog und 8 Zeilen zum Aufrufen. 😃



  • so und jetzt gehts los!
    😉 also ich wollte folgendes machen aus meinem Set raus wollte ich

    ACRView.m_ExportProgress.SetPos(50);
    

    aber das geht nicht weil meine View ist nicht das active Window (ich glaub doch dass mir das Assert mit isWindow das sagen wollte) also dachte ich mir, macht ja nichts mach ich halt

    ACRView.SetActiveWindow();
    

    aber dann geht es immer noch nicht!

    Was bedeutet:

    _AFXCMN_INLINE int CProgressCtrl::SetPos(int nPos)
    	{ ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, PBM_SETPOS, nPos, 0L); }
    

    ??
    Dank dir wieder einmal schon im Voraus.



  • Polofreak schrieb:

    aber das geht nicht weil meine View ist nicht das active Window (ich glaub doch dass mir das Assert mit isWindow das sagen wollte)...

    Nein, wenn der Assert kommt, dann existiert das Fenster nicht.

    Ich vermute, du hast es vor OnInitDialog versucht. 🙂 (Oder auch zu spät, kann auch sein...)



  • Ach man nein ich weiß wo wieder einmal mein Problem ist.
    AAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHH
    Ich kann es einfach nicht!
    Also ich ruf aus der View mein Set auf, und will dann aus dem Set was an die View geben.
    Hab ich schon ne Instanz auf mein Recview? (müsste doch eigentlich)
    -wenn ja wie nutze ich die!
    -wenn nein wie erstelle ich eine Instanz, die mir auf die Instanz der View zurück greift die das Set aufruft.

    Hab es so:

    CACRSQLView* ACRView = dynamic_cast <CACRSQLView*> (AfxGetMainWnd());
    	ASSERT(ACRView);
    

    und so probiert:

    CACRSQLView ACRView;
    

    Aber beides will nicht!

    😞 Wieso kann ich das denn nie! 😞



  • Naja, ist ja auch logisch:

    AfxGetMainWnd() gibt einen Zeiger auf den Mainframe, nicht auf den View.
    Du kannst aber den Mainframe mit GetActiveView() nach dem View fragen. 🙂



  • Jetzt hast eigentlich damit gerechnet dass ich sag HÄÄÄÄÄÄÄ??? 😕
    Dem ist aber nicht so, bzw. nur bedingt!

    Ich hab das hier gemacht:

    CMainFrame* pFrame = dynamic_cast <CMainFrame*> (AfxGetMainWnd());
    	ASSERT(pFrame);
    
    	CACRSQLView *pView = (CACRSQLView *) pFrame->GetActiveView();
    

    Er bringt jetzt keine Fehlermeldung kein ASSERT mehr und nichts aber wenn ich jetzt:

    pView->m_ExportProgress.SetPos(53);
    				pView->UpdateData(false);
    

    mach dann zeigt er mir danach trotzdem nur die leere Progressbar an. 😞 Wieso dass denn nu schon wieder?



  • Ahh sorry mein Fehler hatte es in ner Schleife in die ich nicht rein bin!
    Jetzt gehts!!

    *schmatz* VIELEN LIEBEN DANK



  • Gern geschehen. 🙂

    Aber gewöhn dir doch bitte an, wenn es geht, dynamic_cast zu verwenden, das ist fehlersicherer.

    PS: Ich hatte schon erwartet, dass du die Befehle zusammensetzen kannst. 😉
    Hat ja auch geklappt. 👍


Anmelden zum Antworten