Datenbankerstellung und Analyse



  • warum wird hier nur rumgemotzt?

    hab mal alle foren durchsucht nach:
    1.) *datenbankerstellung*
    2.) *db*erstellen*
    3.) *access*erstellen*

    und gefunden hab ich maximal 2 beiträge wovon einer davon dieser hier ist und im anderen nichts drinsteht. was ist hier ein sinnvoller suchbegriff?

    danke



  • Hej Jhonny,

    Es gibt ein paar dinge die du verstehen solltest.

    Das Forum hier ist kein Treffpunkt der "Anonymen Proggi Kellerkinder"

    johnny schrieb:

    es geht hier nicht um ein riesen projekt. und ich glaub es gibt schon ein paar progger die am wochenende nicht wissen was sie machen sollen...

    👎

    Unser Forum ist kein "Bedien` dich Laden". Wenn du ein Programm haben willst dann kostet das nun mal was, meistens Geld. Zeit ist Geld.

    johnny schrieb:

    ich glaube es findet sich schon jemand der sowas schnell programmieren kann, den i dann sehr schätze!

    😮

    Bist du Jhonny Depp oder Jhonny Walker? :p

    Was hat derjenige davon? Man kann es weder essen noch trinken oder verkaufen. :p

    johnny schrieb:

    für mich ist es ein problem da ich das noch nie gemacht habe und mich auch mit sql-statements zu wenig auskenne.

    Hej, gut F**n kann ja auch nicht jeder von Haus aus . Also ÜBUNG MACHT DEN KLEISTER, ähm Meister. 😉

    In der Informatik gibt es keine Probleme, nur Herausforderungen! 💡
    Wenn du das für die Schule machst dann wird sich der Pädagoge schon was dabei gedacht haben.

    Ich arbeite gerade an einem (wahrscheinlich bissle größerem) Projekt wo ich auch eine Datenbank mit ein paar Tabellen benötige. Ich kann SQL weder buchstabieren noch programmieren 🤡 .

    Hab mir jetzt aber alle Infos geholt und das aus dem NETZ!
    Glaub mir , selber machen kann auch spaß machen.

    Übrigens habe ich das gesuchte Programm ,wie es der zufall so will, schon mal geschrieben. Ich hab das mal in nem Inf. Buch gefunden. Dort wird sowas als Tutorial geführt. Ist nicht all zu schwer und sowas kriegst du auch hin. 👍

    Natürlich kriegst dus nicht weil wir ja alle wollen das du mal bissle mehr Initiative ergreifst. Posten reicht da nicht aus. 🤡

    Also :

    1. Erst googlen
    2. Forum Suche
    3. Bücherei oder Freunde
    4. Forum Posten

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-119964-and-highlight-is-datenbak.html
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-106836-and-highlight-is-datenbak.html
    http://www.schulserver.hessen.de/darmstadt/lichtenberg/SQLTutorial/

    Wenn du das Programm fertig hast, schätzen wir dich alle sehr. Ganz bestimmt 😃

    Liebe Grüße



  • und wenn man konkrete fragen stellt, nachdem ich mich mit dem problem ähh ich meine herausforderung befasst habe, kommen auch keine antworten (siehe mein letzter post, betrifft odbc einbindung)!

    immernoch danke.



  • Ich glaub nach dem Post von dir habe ich als einzigster antworten wollen. Nun ich mach alles per Absolute Database. Einfach komponenten installieren und das wars, musst nix an der ODBC machen.
    Jetzt musst du nur noch selbst programmieren.

    Hier haste nen Link. Die Hilfe ist auch sehr Hilfreich und ich habe selbst ein paar Probleme gehabt. Wenn du dann mal in der Suche nachschaust kannst du vielleicht selbst dein Problem lösen.

    http://www.componentace.com/



  • Einen ODBC-Eintrag kannst Du über die Win-API Funktion
    SQLConfigDataSource() erstellen:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcsqlconfigdatasource.asp

    Um die Access-DB zur Laufzeit zu erstellen, wirst Du wohl Access per COM ansteuern müssen.



  • Ave,

    ich hab das versucht ist für meinen Geschmack viel zu viel arbeit. Da du aber selbst behauptest Anfänger zu sein würde ich dir von Access abraten. Ich hab das letzte Woche ausprobiert, viel zu viel arbeit. Ich empfehle für kleine arbeiten die Komponenten von oben. Keine DLLs etc. nötig.



  • Ich hab nicht behauptet, dass es einfach ist... 😉



  • Hab ich dir ja auch nicht unterstellt 😃



  • danke für die antworten. wenn das so ist mit den odbc sachen dann werd ich das mal vorerst lassen.

    hab jetzt mal eine access-db erstellt und dieser per hand in den odbc-verwaltung hinzugefügt.

    mit meinem programm im builder kann ich die tabelle mithilfe von dbgrid auslesen und sogar neue daten hinzufügen. nun meine frage: wie funktioniert es wenn ich z.b. per button-click vordefinierte werte in die tabelle schreiben will?
    muss ich auch was spezielles beachten wenn ich mein programm per Close();, z.b. die datenbank extra vorher schließen/speichern um eventl. datenverlust zu vermeiden?

    thx.



  • Ich hab diese Frage schon mal gestellt. Guck mal nach.

    War irgendwas mit FieldbyName oder FieldByValue habs vergessen. TTable ist hier eigentlich die falsche komponente (TQuery). Du wirst später auf ein Problem mit TTable stoßen. Hab ich auch gehabt. Daher lauf ruhig gegen die Wand. 😞



  • @Johny
    Im Prinzip kann man sich bei diesem Niveau von Fragen nur wiederholen.

    Wer lesen kann ist klar im Vorteil. 😉

    Wenn Du nur 5 min auf das Lesen der BCB Hilfe (Query Propertys & Methoden) verschwenden würdest, würden sich derartige Fragen von allein erledigen.



  • also ich hab da wie oben beschriebn eine tabelle mit 3spalten, i jeder davon gibts so ca. 5 werte die ich nun mit folgendermaßen durchsuchen möchte:

    void __fastcall TFormMain::ButtonReadMINClick(TObject *Sender)
    {
     Query->Close();
     Query->Active = false;
     Query->SQL->Clear();
     Query->SQL->Add("SELECT Min(Tabelle1.Sensor1) AS MinvonSensor1 FROM Tabelle1;");
     Query->Active = true;
     EditReadMIN->Text = Query->ParamByName("Tabelle1.Spalte1")->AsString;
     Query->Open();
    }
    

    den sql code habe ich erhalten, indem ich in access eine abfrage erstellt habe und dann den sql-code kopiet habe.

    die frage: in der zeile "...= Query->ParamByName("Tabelle1.Spalte1")->AsString..." kommt es zu einer fehlermeldung. bin ich hier überhaupts auf dem richtigen weg.
    wie kann ich denn das ergebnis das aus meiner query kommt abfragen. wie bekomme ich, hier einen entsprechenden minimalwert, heraus um ihn dann weiterzuverarbeiten können?

    thx



  • ich habe oben geschrieben:

    die frage: in der zeile "...= Query->ParamByName("Tabelle1.Spalte1")->AsString..." kommt es zu einer fehlermeldung. bin ich hier überhaupts auf dem richtigen weg.
    wie kann ich denn das ergebnis das aus meiner query kommt abfragen. wie bekomme ich, hier einen entsprechenden minimalwert, heraus um ihn dann weiterzuverarbeiten können?

    vielleicht war die frage etwas unklar, deshalb nochmal:

    mit welcher funktion/methode erhalte ich das resultat das mein tquery liefert? in meinem fall wäre es eine zahl aus einer spalte, die ich dann in ein edit schreiben möchte.

    thx



  • Hallo

    siehe TQuery::FieldByName()::AsString

    bis bald
    akari



  • also wenn ich das so mache funzts auch nicht

    void __fastcall TFormMain::ButtonReadMINClick(TObject *Sender)
    {
     Query->Close();
     Query->Active = false;
     Query->SQL->Clear();
     Query->SQL->Add("SELECT Min(Tabelle1.Spalte1) AS MinvonSensor1 FROM Tabelle1;");
     Query->Active = true;
     EditReadMIN->Text = Query->FieldByName("Spalte1")->AsString; // so richtig?
     Query->Open();
    }
    

    brauch ich ein query->execsql auch?

    mein ziel soll folgendes sein:

    EditReadMIN->Text = 'ERGEBNIS AUS QUERY';
    

    thx



  • Hallo

    du must schon den Alias verwenden, den du in der Abfrage definierst.

    EditReadMIN->Text = Query->FieldByName("MinvonSensor1")->AsString;
    

    Du solltest mal die von dir verwendeten SQL-Statements mal in einem DB-Frontend ausprobieren, damit du siehst was du als Ergebnis mit welchen Spaltennamen zurückbekommst.

    bis bald
    akari



  • danke für die antwort, werde das gleich mal ausprobieren mit dem alias.

    aber was ist "db-frontend", ich als noob hab keine ahnung was das sein soll.

    danke



  • Hallo

    EIn Datenbank-Frontend ist ein programm um direkt die Tabellen und Daten zu bearbeiten.
    Im Falle der BDE/Paradox (also wenn du direkt TTable oder TQuery benutzt) ist das das Builder-Hilfsprogramm Datenbankoberfläche, bei ADOConnection Access und bei MySQL zum Beispiel MySQL-Frontend.

    bis bald
    akari



  • zur auswertung hab ich mir folgendes überlegt:

    1. ich suche die min und max einer spalte heraus
    2. mit diesen werten kann ich mir ausrechnen, welcher wertebereich 10% beträgt
    3. nun möchte ich die anzahl der werte wissen, die innerhalb dieser 10% (von min. bis +10%) liegen.

    die frage steckt in punkt 3): gibts dazu einen einfachen sql-code fürs query oder ist das nurüber mehrere "ecken" zu lösen - und wie?

    die 2te frage: muss ich für das ausführen des sql-statements des querys query->open();, query->execsql(); oder reicht query->active=true; schon aus?

    danke



  • Active ist eine Eigenschaft, die mittels der Methode Open gesetzt wird!

    Das geht (glaube ich) zwar auch rekursiv, ist aber nicht State of the Art und sollte vermieden werden.

    select count(x)
    from y
    where z >= Min
    and z <= Min*1.1

    oder

    select count(x)from y
    where z between Min and Min*1.1


Anmelden zum Antworten