Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme bei Postausgangsbuch (https://www.delphipraxis.net/77476-probleme-bei-postausgangsbuch.html)

trabigti 20. Sep 2006 08:14

Datenbank: Paradox 7 • Zugriff über: BDE

Probleme bei Postausgangsbuch
 
Hallo,

ich versuche ein Postausgangsbuch über Delphi zu schreiben!
Mein Problem besteht darin das ich 3 Abteilungen haben möchte die unabhängig ihre Briefe in die Datenbank einschreiben sollen und auch nur di von ihnen eingegebenen Daten sehen sollen!
Eine HauptAbteilung jedoch muss nach datum geordnet alle Einträge sehen können!

Wie gehe ich dabei vor?
ich hatte vor alle Daten zwecks ID in eine Tabelle zu speichern da auch die Hauptabteilung Briefe eintragen muss!

Wie gestalte ich die SQL Abfrage?

marabu 20. Sep 2006 08:33

Re: Probleme bei Postausgangsbuch
 
Herzlich willkommen in der Delphi-PRAXiS, trabigti.

Alle Zeilen in die gleiche Tabelle ist nicht verkehrt. Du wirst eine Spalte haben, welche den Abteilungsschlüssel aufnimmt. In einem RDBMS verwendet man eine VIEW um die sichtbaren Zeilen wertmäßig zu beschränken:

SQL-Code:
CREATE VIEW pab_abt AS SELECT * FROM pab_alle WHERE Abteilung = :abteilung
Freundliche Grüße vom marabu

trabigti 20. Sep 2006 08:38

Re: Probleme bei Postausgangsbuch
 
Hi,

ja eine Spalte mit Abteilungschlüssel ist natürlich vorhanden!

Ich mus noch bemerken das ich noch nie mit SQL Befehelen gearbeitet hab und deswegen leider nicht genau weis wie ich den Befehl umsetzten soll?

PS.: Meine gesamten Datensätze werden in einem DBGrid dargestellt!

marabu 20. Sep 2006 08:50

Re: Probleme bei Postausgangsbuch
 
Bevor es weiter geht - kannst du bitte die von dir verwendete Delphi-Version in dein DP-Profil eintragen? Außerdem musst du bei deinem Thema das konkrete RDBMS angeben (z.B. MySQL, MSDE, FB, IB oder auch Paradox) und bei Zugriff wollen wir die Komponenten sehen, die du verwendest (z.B. ADO, DBX, IBX, ZEOS, BDE, ...).

marabu

trabigti 20. Sep 2006 08:56

Re: Probleme bei Postausgangsbuch
 
Kein Problem,

sorry für die schwierigkeiten ich bin ziemlicher Delphi anfänger ;-)

Meine Version: Delphi 4 Prof.
Datenbanktyp: Paradox
Zugriff: BDE

marabu 20. Sep 2006 09:21

Re: Probleme bei Postausgangsbuch
 
Vielen Dank.

Trotz D4 solltest du die neueste BDE-Version (5.2) installiert haben.

Wenn du der DataSource, mit der dein DBGrid verbunden ist, eine Query mit folgendem SQL-Statement zuordnest, dann siehst du nur noch die Sätze der Abteilung 2:

SQL-Code:
SELECT * FROM pab_alle WHERE abteilung = 2
Diese Technik kannst du noch verfeinern, indem du die 2 durch einen Parameter ersetzt:

SQL-Code:
SELECT * FROM pab_alle WHERE abteilung = :abteilung
Diesen Parameter musst du dann vor dem Open() der Query noch setzen:

Delphi-Quellcode:
Query.Params.ParamByName('abteilung').AsInteger := 2;
Selbst eine VIEW ist mit Paradox auf Umwegen möglich:

SQL-Code:
SELECT * FROM "pab_abt.sql"
In der SQL-Datei muss dann dass erste SQL-Statement aus diesem Beitrag stehen.

marabu

trabigti 20. Sep 2006 09:47

Re: Probleme bei Postausgangsbuch
 
den Queltext verstehe ich aber da ich wirklich noch nie mit sql befehlen gearbeitet habe weis ich nicht wie man das query zuordnet und wie man den sql befehl eingeben soll

hoika 20. Sep 2006 10:20

Re: Probleme bei Postausgangsbuch
 
Hallo,

zuerst einmal:
Finger weg von Paradox, falls du keinen Ärger beim Kunden haben willst.
Sch mal zum spass nach "Index out of range" in Google.

Das ist der am meisten auftretende Fehler.
Paradox funktioniert seit NT4 im Netz nicht mehr richtig.

Ich habe jahrelang damit gearbeitet,
nach dem Umstieg auf Firebird (jippiii ;) ) gibt es (fast) keine DB-Problem mehr.


Nun zum Thema.

Falls du ein TDBGrid verwenden willst,
packe zusätzlich ein TDataSource aufs Form.
Die Zuordnun ist

DBGrid.DataSource <- TDataSource.DataSet <- TQuery

Alle Abteilungen (auch die Hautpabteilung) stehen in einer eigenen Abteilung
mit Id (primary key), Name, Rechte usw.

Parameter theDepartmentId Integer
Delphi-Quellcode:
with Query do
begin
  Close;
  SQL.Clear;
  SQL.Add('Select * From DeineTabelle');
  if not DepartmentHasAllAccessRights(DepartmentId) then
  begin
    SQL.Add('Where DepartmentId=:theDepartmentId');
    ParamByName('DepartmentId').AsInteger:= theDepartmentId;
  end;
  SQL.Add('Order By EntryDate Desc');

  Open;
 // jetzt steht es im DBGrid
end;
Ich empfehle das Buch Datenbanken mit Delphi von Andres Kosch.

Heiko

trabigti 20. Sep 2006 12:20

Re: Probleme bei Postausgangsbuch
 
Mitlerweile ist es mir gelungen mittels dem oben genannten:
SQL-Code:
select * from sd1 where abteilung = 'Schreibdienst'
den ich im Objektinspektor für das Query eingegeben habe gelungen die gewünschten Datensätze gefiltert im Grip anzuzeigen!

Jedoch kann ich leider jetzt nicht mehr mit dem DBNavigator andere Datensätze hinzufügen oder löschen!

Zur Erklärung ich habe neben meinem Grip eine Eingabemaske bestehend aus mehreren DBEdit Feldern um die Dateneinzugeben, jedoch kann ich jetzt nicht mal mehr in diese Felder schreiben!

uwewo 20. Sep 2006 12:28

Re: Probleme bei Postausgangsbuch
 
Das ist ganz normal, die Select Anweisung zeigt Dir die Daten nur an.

Schau Dir mal das Tutorial von Luckie an, es ist zwar für MySQL aber die vorgehensweise ist dieselbe.

trabigti 20. Sep 2006 12:51

Re: Probleme bei Postausgangsbuch
 
das hatte ich mir schonmal angeschaut nur leider kann ich die demo nicht laden da bringt mir Delphi immer den fehler das das Form das falsche script hat!

Wie kann ich den DBNavigator wieder nutzen?

hoika 20. Sep 2006 14:14

Re: Probleme bei Postausgangsbuch
 
Hallo,

viell. ist ja das Where schuld.

Nimm es doch testweise mal raus.
Da ich keinen Navigator benutze
und keine Lust zum Probieren habe :stupid:
musst du es selber mal machen.


Heiko

marabu 20. Sep 2006 15:56

Re: Probleme bei Postausgangsbuch
 
Du solltest mal prüfen, ob die Verkettung der Komponenten noch stimmt. Immerhin hast du eine Table-Komponente gegen eine Query ausgetauscht. Der DBNavigator und alle datensensitiven Controls auf deiner Form müssen die gleiche DataSource verwenden, wie dein Grid - dann wird es schon klappen. Und setze die Eigenschaft RequestLive deiner Query auf True, damit du auch Änderungen machen kannst.

marabu

trabigti 21. Sep 2006 06:35

Re: Probleme bei Postausgangsbuch
 
riesen dank an Marabu!

ich hatte RequestLive = False!!!

Vielen Dank für eure hilfe

trabigti 21. Sep 2006 12:12

Re: Probleme bei Postausgangsbuch
 
Hi, danke nochmal für eure Hilfe!

Ich würde euch gern mal das Programm hochladen damit ihr es euch es mal ansehen könntet!
Wie mach ich das? Es wäre wirklich nett wenn ihr es mal anschauen würdet!

Das Programm funktioniert zwar aber leider sind die Passwörter noch als Hardcode im Qelltext abgelegt und ich kann die Grids nicht ausdrucken, ich vermutet auch das ich auch noch andere Fehler gemacht habe!

Seit bitte nich zu hart ich arbeit wirklich das erste mal mit datenbanken und delphie!

MfG Stephan

trabigti 22. Sep 2006 06:07

Re: Probleme bei Postausgangsbuch
 
weis keiner wie ich euch das Programm mal hochladen kann?

marabu 22. Sep 2006 06:15

Re: Probleme bei Postausgangsbuch
 
Hallo Stephan,

am besten du packst alle relevanten Dateien deines Projektes - ohne *.~* und *.dcu und *.exe - in ein ZIP-Archiv. Im Beitragseditor findest du am unteren Rand die Eingabeelemente für das Upload eines Attachments.

Grüße vom marabu

trabigti 22. Sep 2006 06:24

Re: Probleme bei Postausgangsbuch
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke Marabu,

hier das Programm,
es wäre wirklich nett wenn du mir bei der Passwortabfrae und der Druckfunktion helfen könntest!

trabigti 25. Sep 2006 06:51

Re: Probleme bei Postausgangsbuch
 
weiß vieleicht jemand wie man in dem Programm ne Passwortabfrage realisieren kann?

marabu 25. Sep 2006 07:35

Re: Probleme bei Postausgangsbuch
 
Hallo,

wird dieses spezielle Problem nicht schon in deinem anderen thread diskutiert? wie veraenderbare passworte realisieren

Grüße vom marabu

trabigti 25. Sep 2006 13:22

Re: Probleme bei Postausgangsbuch
 
hab aber leider noch keine Konkrete Lösung!

raiguen 4. Okt 2006 22:08

Re: Probleme bei Postausgangsbuch
 
Moin :-)
Ist das Thema noch weiter aktuell?
Egal, ich werd mal einige Anmerkungen meinerseits abgeben; in wie weit selbige (un)nützlich sind, bleibt im Auge des Betrachters ;-)

Dein (erstes) Projekt ist ein elekronisches Postausgangsbuch (PAB), welches die händisch geführten PAB's ersetzen soll? Soweit echt mutig, aber so einfach wie Du dir das vorstellst geht das nicht.
Ein PBA ist eine Art Dokument, welches im Falle eines Rechtsstreites durchaus Beweiskraft haben kann und somit schon einmal 'fälschungssicher' bzw manipulationssicher sein muss.
Von daher MUSS das PBA eine eindeutige Zugriffsregelung haben, wo beo jeder Benutzer (intern) durch eine eindeutige Kennung identifizierbar sein muss und diese Kennung muss (neben einigen anderen wichtigen Daten) eindeutig im Datensatz abgelegt werden. Damit ist gewährleistet bzw im Zweifelsfalls belegbar, welcher Benutzer einen bestimmten Datensatz angelegt hat. Die (interne-nicht veränderbare Kennung) ist sozusagen die 'Handschrift' eines Benutzers.
Manipulationssicher bedeutet u.a. auch, dass datumsmässige nachträgliche Einträge nicht möglich sind, weil JEDER NEUE Eintrag automatisch eine fortlaufende Nummer erhält und somit 'Tricksereien' mit zwischengeschobenen Einträgen auffallen.

Zur Zugangsregelung: hier einen EINDEUTIGE Einzel-Benutzer Regelung vorsehen, will sagen: JEDER Benutzer erhält neben seinem eigentlichen Namen sein persönliches Kennswort - zugleich ist der Benutzer einer Abteilung zuzuorden, damit nach erfolgreicher Anmeldung auch nur das für die Abteilung zuständige PAB geladen/angezeigt wird. Natürlich sollte auch ein 'Supervisor' eingerichtet werden, welcher Zugriff auf den gesamten Datenbestand hat; der Admin (kann auch gleichzeitig der Supervisor sein) hat die Möglichkeit, weitere Benutzer anzulegen und das (erstmalige) Passwort. Die Benutzertabelle ist natürlich separat anzulegen.

Wenn das Programm im Netz betrieben werden soll - und davon gehen mal aus wegen der verschiedenen Abteilungen - dann muss natürlich die 'Datenbank' auch im Netz verfügbar sein (erklärt sich fast von selber ;-) ). Ferner sollte beachtet werden, dass auf den Client-PC's die BDE installiert sein muss (sofern mit BDE und Paradox gearbeitet wird)...

Hab ich jetzt alles? Mag sein,. dass ich was vergessen habe... wollt eh nur mal einige (un)wichtige Anmerkungen loswerden ;-)

...

Mackhack 5. Okt 2006 07:03

Re: Probleme bei Postausgangsbuch
 
Hallo raiguen,

ich habe ihm die Anwendung soweit fertig und sogar mit all deinen Ideen die du aufgelistet hast versehen. Das ganze geschah letzte Woche. Es werden noch ein paar Schoenheitsdinge daran gemacht fuers Auge, aber sonst ist es soweit fertig.

raiguen 5. Okt 2006 21:57

Re: Probleme bei Postausgangsbuch
 
Zitat:

Zitat von Mackhack
Hallo raiguen,

ich habe ihm die Anwendung soweit fertig und sogar mit all deinen Ideen die du aufgelistet hast versehen. Das ganze geschah letzte Woche. Es werden noch ein paar Schoenheitsdinge daran gemacht fuers Auge, aber sonst ist es soweit fertig.

Hallo Mackhack,
okay, dann brauch ich mir ja keine weiteren Gedanken mehr machen ;-) hätte ihm sonst auch gern geholfen, aber da ich die letzten Tage auf Kundenbesuch war, konnte ich mich erst gestern wieder einklinken... Schön, dass es noch so hilfsbereite User gibt :-)
Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 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