![]() |
DB-User-Verwaltung
Hier nochmal zwei Fragen zur DB-User-verwaltung:
ACHTUNG: Thread schließt an folgenden an: ![]() Zitat:
|
Re: DB-User-Verwaltung
hallo phönix!
startest ein remake? :mrgreen: 'back to the roots' ist oft gar nicht so verkehrt, wenn man sich im dschungel der bites & bytes verfranzt hat ;) 1) vokabelverwaltung das hauptmenü könnte zb so aussehen: [Programm] [Vokabel abfragen] [Vokabelverwaltung] [System] [Benutzer] [Hilfe] - [About ...] - [starten - [erfassen] - [sprachen] - [anlegen] - [info] - [Beenden] - [auswertungen] - [bearbeiten] - [themen] - [bearbeiten] - [handbuch] - [suchen] -[liste] programmieren beginnt mit zettel und bleistift und nicht komponenten wahllos auf die form klatschen :P in der planungsphase strukturierst du deine ideen (bzw die vorgaben) und ordnest sie logisch an 2) vokabel erfassen was braucht man dazu? - sprache, falls das programm multilinguial fungieren soll - themenkreis zb, freizeit, schule, wirtschaft, allgemeines, usw... um bei den abfragen gezielt nach ausdrücken suchen zu können, welche zu diesen themen gehören deshalb gibts im menüpunkt [system] die möglichkeit, diese kriterien erfassen zu können --> muss vor dem vokabeleingeben ein formular erscheinen, in welchem man diese einträge einstellen kann (zb mittels comboboxen) und natürlich eine eingabemaske .... ein DBGrid ist eine gute idee zum anzeigen der bereits erfassten vokabel, aber zum editieren ist sie nicht so praktisch dafür eignen sich DBEditfelder besser --> doppelte einträge: wenn sowohl das deutsch- als auch das fremdsprachige wort gleich sind, dann soll der neue datensatz nicht aufgenommen werden. --> was geschieht mit bereits abgefragten vokabel, die richtig beantwortet wurden? bzw mit nicht richtig beantworteten? sollen diese nochmals gewählt werden, so lange, bis die antwort stimmt? --> gibts bei der beantwortung ein zeitlimit oder darf man sich unbegrenzt dafür zeit lassen wie du siehst, kommen die ideen immer erst bei der arbeit :) ----------------- die obenstehenden ideen & vorschläge solltest dir durch den kopf gehen lassen und überlegen, welche features dein programm noch umbedingt bieten soll danach machst dich an die erstellung einer eingabemaske, die dem 'normalen' arbeitsablauf beim datenerfassen entspricht d.h. oben zb das DBGrid und darunter die eingabefelder in der reihenfolge, wie sie zu befüllen sind ganz unten setzt 3 buttons zb [übernehmen] [verwerfen] [zum menü] ein suchbutton wär noch ganz praktisch, mit dem man die vokabelsuche aufrufen kann ... den setzt an den rechten rand der form. wenn dir dein formular gefällt und du dich ohne viel tab-hopserei vom anfang bis zum ende durchhanteln kannst, machst dich an die erstellung der tabelle(n). welche felder wirst denn benötigen? ------------------------------------------------------------------------------------------------------------------- 2) select (feldname1, feldname2) from tabellenname where (feldname3 = 'guck_guck') order by feldname4 .... nennt man SQL (structured query language) und dient dazu, um zb tabelleninhalte abzufragen, berechnungen durchzuführen, usw mit der BDE kannst du solche kontruktionen mittels einer TQuery abarbeiten lassen. du findest sie auf dem register 'datenzugriff' gleich neben der tabelle. der obeige SQLString macht nichts anders, als die felder feldname1 und feldname2 aus der tabelle tabellenname auszuwählen und sie anzuzeigen. aber nicht alle, sondern nur jene, bei denen im feld feldname3 'guck_guck' eingetragen ist. damit die anzeige etwas gleichschaut, wird das ergebnis sortiert nach dem inhalt des feldes feldname4 angezeigt - das könnte zb ein datumsfeld sein Zitat:
---------------------------------------------------------------------------------------- fang aber jetzt bitte nicht an eine query aufs formular zu klatschen, das hat noch jede menge zeit mfg, stefan |
Re: DB-User-Verwaltung
Zitat:
Zitat:
Zitat:
Aber WO kommt denn nun der Code hin und WIE und WANN greift amn auf ihn zu?? Soweit ich weiß ist das ja kein Delphi-Code... |
Re: DB-User-Verwaltung
sorry, mir ist die formatierung abhanden gekommen
das ganze ist nämlich lustig... beim ersten mal auf vorschau klicken waren die zwischenräume noch da, erst beim zweiten mal wurden sie eleminiert :gruebel: ich hoffe, jetzt ist es klarer verständlich
Code:
mainmenü:
[Programm] [Vokabel abfragen] [Vokabelverwaltung] [System] [Benutzer] [Hilfe] - [About ...] - [starten] - [erfassen] - [Sprachen] - [anlegen] - [Info] - [Beenden] - [auswertungen] - [bearbeiten] - [Themen] - [bearbeiten] - [Handbuch] - [suchen] -[liste] Zitat:
der vorteil dabei ist, dass man gleich alle benötigten komponenten hinstellt und so schon von vornherein ihren platzbedarf erkennt. hinterher noch irgendwo schnell was einfügen artet meist in ein geduldsspiel aus es hat sich als praktisch erwiesen, alle formulare mit ausnahme des hauptformulars (zb MainDlg) und des datenmoduls (DM) erst zur laufzeit erstellen zu lassen. es werden ohnehin nicht immer alle aufgerufen und daher belegen sie nur unnötig speicherplatz. man sollte auch den forms sprechende namen geben (VokabelAnlegenDlg sagt mehr als als Form97 - stimmts? ) wozu brauchst denn jetzt schon proceduren? willst schon deinen zufallsgenerator irgendwo einbauen? *gg* jetzt gehts mal ans erstellen der tabellen. am schnellsten & einfachsten mit der DBO. das erste feld jeder tabelle taufst immer 'ID', definierst es, wegen meiner, als autoinc und setzt den primärschlüssel drauf. beginn einmal mit der zentralen vokabeltabelle. damit man sieht, dass es sich im eine tabelle handelt, stelle ich 'tbl' vor dem namen, als zb 'tblVokabel' folgende felder wirst umbedingt brauchen: ID, Deutsch, Fremdsprache, Thema, richtig, beantwortet so weit alles klar? na dann mal frisch ans werk! :mrgreen: Zitat:
ein doppelklick auf (TStrings) öffnet den SQL-Editor und dort schreibst du das SQL-Statement rein. abgearbeitet wird das SQL-Statement jedesmal, wenn du Query.SQL.Open aufrufst, vorausgesetzt, du willst eine datenmenge zurückgeliefert haben. willst du aber einträge dazufügen, ändern oder löschen, dann rufst du seine methode 'ExecSql' auf. mfg, stefan |
Re: DB-User-Verwaltung
OK...Das ist wirklich nett von dir.. :angle:
Ich fang nun an... Wenn noch Fragen auftauchen (und das passiert ganz bestimmt :wink: ) poste ich wieder... THX |
Re: DB-User-Verwaltung
hätte da noch ne kleine organisatorische frage.. :?
wie baust du immer so eine "zeichnung" mit bleistift und papier auf?? und was soll das mit den bildschirmmasken sein?? |
Re: DB-User-Verwaltung
Zitat:
ich dachte, du bist schon am arbeiten? :mrgreen: dann mach das beste draus. wennst nicht weiter weisst, meld dich ruhig papier & bleistift: ich habs mir angewöhnt, die bildschirmmasken zuerst mal zu skizzieren. das ist gar nicht so unpraktisch, vor allem, wenn eine ganze menge dialogkomponenten auf der form platz finden sollen. auf diese art erstell ich einge entwürfe, bis mir endlich die maske gefällt und die felder, knöpfe, listboxen, datengitter usw in einer für mich logischen anordnung und reihenfolge platziert sind. danach übernehm ich den entwurf auf die form. bleib bei deiner formgrösse auf max 800 x 600 (770 x 580), damit auch 15"-monitor user die ganze maske in einem stück betrachten können und übertreibs mit den farben, skins, hintergrundbildern nicht. deine augen werden es dir danken *g* dann wünsch ich dir viel spass & gutes gelingen mfg, stefan |
Re: DB-User-Verwaltung
Liste der Anhänge anzeigen (Anzahl: 1)
Ich will jetzt die Seite für die Vokabelverwaltung (List,Suchen;Verändern) alles in EINER form haben....
Habt ihr da vorscläge für die platzanordnung? Ich hab mal ein in POaint skizziert (im anhang) |
Re: DB-User-Verwaltung
Zitat:
Und wie sortiert? Alphabetisch?? |
Re: DB-User-Verwaltung
hallo julian!
bist schon fest am coden? ;) @sortieren: ohne zusatz ist die suchrichtung aufsteigend, mit 'DESC' ist es dann umgekehrt. @anzeigen: eine query stellt dir grundsätzlich eine datenmenge bereit. wenn diese query nun an einer datasource hängt und an dieser wiederum 'gebundene DB-komponenten', dann wird in diesen die datenmenge angezeigt. du kannst allerdings auch mit
Delphi-Quellcode:
auf den dateninhalt zugreifen und ihn in einem 'gewöhnlichen' editfeld anzeigen lassen.
Query1.FieldByName('feldname').asIrgendwas
im verzeichnis 'Gemeinsame Dateien\Borland Shared\BDE' findest du das file 'localsql.hlp'. darin gibts jede menge infos zum umgang mit queries aber für ein vokabelprogramm würde ja auch TTable & Locate ausreichen - denn die antwort wird in den meisten fällen ja nur ein datensatz sein, oder? mfg, stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz