-
Gesamte Inhalte
606 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Flori
-
-
Hallo zusammen,
folgendes Thema hab ich noch auf dem Herzen bevor ich dann endlich schlafen gehe.
Ich hatte heute nen Prob mit meinem Auto und wollte ein paar Bilder in ein Forum posten. Dazu habe ich zwei Wege probiert:
a) Hochladen über die Forumssoftware ("Burning Board",WoltLab GmbH) als Anhang zu meinem Posting.
Hochladen der Fotos in ein Fotoalbum bei Arcor.
Bei beiden Versuchen kam irgendwann nur ein sinngemäßes "der Server antwortet nicht / ist nicht erreichbar".
Direkt alles durchgecheckt: Internet-Verbindung ok, Firewall blockt nichts rund um den HTTP-Port, technisch alles ok.
Hmm, sollte es tatsächlich an dem "Kult-Browser" Firefox liegen, auf den ich eigentlich nie was kommen lassen wollte?! ^^
Also nächster Versuch mit dem IE6 --> schwups, Upload erfolgreich!
Dann noch mit dem Opera --> siehe da, auch der schaffts ohne Probleme?!
Tja, man ahnt die Frage:
Liegts an irgendwelchen Einstellungen im Firefox, daß der Firefox keinen Upload schlichter JPG-Dateien hinbekommt? Oder liegts irgendwie am Code der Formular-Seite, daß er sich da irgendwie "verschluckt" an den Formularinhalten, die dann ja leztlich zum Upload führen? Oder das Serverskript dahinter? Oder oder oder??!
Sachdienliche Hinweise, Ideen, Ratschläge, eigene Erfahrungen in dieser Sache mit dem Firefox und seinem Verhalten bitte an mich.
Ich danke Euch bereits im Voraus dafür!
P.S. Habs sowohl mit der 1.5er als auch mit der 2.0er Version des Firefox probiert...kein Erfolg.
Bin erstaunt, daß es IE und Opera auf die Reihe bekommen, der FF aber nich. :-/
Grüße
Flori
-
SELECT lagerort FROM lager WHERE menge = MIN(menge)
Habs gerade einfach mal noch probiert und folgende (Fehler-)Meldung unter MySQL erhalten:
"#1111 - Invalid use of group function"
MIN() gehört in die Gruppe der "Funktionen zur Benutzung in GROUP BY-Klauseln" (Kap. 12.11.1. in MySQL-Doku, Vers.5.1)
Viele Grüsse
Flori
-
Hallo,
also ich habe ja auch ne lange Zeit rumprobiert und ich bin inzwischen sehr sicher, daß es genau das ist was gefragt wurde.
SELECT lagerort FROM lager WHERE artikelnr = 123 AND menge = (SELECT MIN(menge) FROM lager WHERE artikelnr = 123)
In meinem Unterselect such ich mir erstmal heraus welches die minimale Menge von Artikel 123 ist. Dann nehme ich diese "menge" und suche nach dem "lagerort", der genau diese menge hat. Um zu vermeiden, daß andere Artikel mit gleicher Menge berücksichtigt werden, ist die artikelnr = 123 nochmal als Bedingung gegeben. So funzt es.SELECT lagerort, MIN(Menge) FROM lager WHERE Artiekelnr = 123 GROUP BY menge
Du hingegen gruppierst nach der Menge, so daß Du alle MINs für verschiedene Lager bekommst. D.h. du bekommst einen MIN-Wert für jedes Lager welches den Artikel 123 bevorratet.
Aber wie gesagt, is auf den ersten Versuch hin auch nicht so leicht, da durchzusteigen.
Ich hab in den nächsten Tagen noch ein paar weitere Statements, für die ich vermutlich hier auch noch um Rat fragen werde...um schon mal den nächsten Beitrag anzukündigen.
-
Das wollte mir doch jetzt keine Ruhe lassen.
Nach etwas Recherche in der MySQL-Doku und schlichtes rumprobieren hab ich es so wie ich es mir vorstelle.
Für alle die, die mal vor ähnlichen Problemen stehen, hier einfach mal die Statements, die die Anfragen in a) und auflösen:
für Anfrage a) :
SELECT lagerort FROM lager WHERE artikelnr = 123 AND menge = (SELECT MIN(menge) FROM lager WHERE artikelnr = 1)
Hierbei half folgende Seite aus der MySQL-Doku: "3.6.4. Die Zeilen, die das gruppenweise Maximum eines bestimmten Felds enthalten" -> Link Für Anfrage hab ich folgende Lösung:SELECT artikelnr, COUNT(lagerort) AS cnt FROM lager GROUP BY artikelnr HAVING cnt >1
Auf das HAVING war ich einfach anfangs nicht gekommen.
Geholfen hat mir hier folgendes aus der MySQL-Doku: "A.5.4. Probleme mit alias" -> Link
So, das soll nun aber auch für heute reichen.
Danke an diejenigen, die sich im Laufe des Tage mit meiner Frage beschäftigt hätten, wenn ich nicht doch selbst auf die Antwort gekommen wäre.
/Flori
-
Hallo zusammen,
habe hier eine an sich sehr überschaubare Tabelle, die ein Lager für Artikel darstellt:
Tabelle "Lager" mit den Spalten "Artikelnr | Lagerort | Menge"
Das was als SQL-Anfrage an sich gestellt werden soll, ist recht nachvollziehbar, allerdings komme ich immer zur Rückgabe von mehr Zeilen als notwendig (die gesuchten sind immerhin dabei ).
Und nun wollte ich mal fragen, ob jemand weiß, ob man nicht nur auch auf genau die eine zurückgebene Zeile kommen kann, die man am Ende benötigt?
Folgende Anfragen an die Tabelle:
a) Welcher Lagerort lagert am wenigsten Artikel mit der Artikelnr = 123 ?
Welche Artikelnr gibt es an mehr als einem Lagerort?
Weiß jemand, ob ich diese Anfragen jeweils mit einem SQL gelöst bekommen kann und wenn ja wie die Statements für a) und dann aussehen würden?
Vielleicht isses ja einfach nur trivial und ich hab mich einfach in irgendwas verrannt was die Sache nur unnötig kompliziert und mich den Wald vor lauter Bäumen nciht mehr sehen läßt. :-/
Vielen Dank für Eure Hilfe im Voraus!!!
Grüsse
Flori
-
Ui, vielen Dank!
Das liest sich beides interessant, insbesondere das Carp-Modul, da in der Beschreibung direkt was von "Redirect Error Messages" steht.
Das werde ich dann mal probieren.
Grüsse
Flori
-
Hallo zusammen,
ich habe mal folgende Frage zum Verhalten von "die" innerhalb eines Perl-Skripts und würde mich freuen, wenn mir da jemand helfen könnte.
Folgenden Aufruf verwende ich in einem Skript, um Verbindung zu einer Datenbank herzustellen. Das Skript wird über per CGI in einem Webbrowser aufgerufen ("http://localhost/cgi-bin/dbconnect.pl"):
my $dbh = DBI->connect("DBI:$SQL_Driver:$db", $SQL_User, $SQL_Passw) or die "Verbindung konnte nicht hergestellt werden: $DBI::errstr\n";
Schlägt nun mal der DB-Aufruf fehl, z.b. falscher Passwort / falscher Benutzer o.ä., schreibt mir der zweite Teil des Aufrufs ("or die") den Text "Verbindung konnte nicht hergestellt werden: " plus Error-String aus "DBI::errstr" in mein Apache-Error-Logfile. Im Browser-Fenster erscheint dann überhaupt keine Ausgabe. "die" schreibt so wie ich weiß nach STDERR und da es über den Webserver aufgerufen wird ist es ja irgendwo logisch und nachvollziehbar, daß es sich um die Webserver-Error-Datei handelt. Meine Frage ist nun: Wäre es möglich die Ausgabe von "die" derart umzubiegen, daß in eine von mir vorgegebene DAtei geschrieben wird?? Folgendes hab ich schon mal probiert, aber damit kam dann nirgendwo mehr ein Hinweis auf einen Fehler an:close STDERR; open STDERR,"C:/apache/tmp/errortext.log" or print "Datei nicht vorhanden";
Noch eine Zusatzfrage: Wäre es okay, statt "die" ein "print" zu verwenden, damit im Browser eine Fehlermeldung erscheint, zum Beispiel so:my $dbh = DBI->connect("DBI:$SQL_Driver:$db", $SQL_User, $SQL_Passw) or print "Verbindung konnte nicht hergestellt werden: $DBI::errstr\n";
Oder gäbe es da "galantere" Wege?
Vielen Dank schon mal im Voraus, wenn sich ein "Perl-ianer" meiner annehmen würde!
Viele Grüße und Euch allen noch ein schönes Weihnachtsfest und schon mal einen guten Rutsch ins neue Jahr!!!
Flo
-
I see...!
Da sage ich nochmal "Dankeschön!" an JesterDay und Eupinkepank.
Das mit dem "require_once()" hatte ich schon in den erwähnten Beispielen gesehen, die ich mir schon mal angeschaut hatte.
Die "function __autoload" hatte ich noch nich gesehen, klingt auch sehr interessant und auch praktisch, wenn das automatisiert werden könnte. Wie ich gesehen habe ist es seit PHP 5 mit dabei. :cool:
Kurzum: Man lernt nie aus - echt super, dass es dieses Forum hier gibt! :uli
Grüsse
Flori
-
Vielen Dank für die Antworten!
Habe zwischenzeitlich mal in ein paar mit PHP geschriebene Anwendungen geschaut (u.a.das CMS Joomla) und dort gesehen, daß dort auch mit Klassen gearbeitet werden, die jeweils über require() eingebunden werden, wenn auch über mehrere PHP-Dateien ineinander verschachtelt. Damit werde ich wohl zunächst auch diesen Weg wählen.
Die Sache mit der Factory-Klasse ist mir erstmal ziemlich neu, allerdings sicher ein Hinweis nach dem ich mal googeln werde. Bin ja immer offen für neues.
Grüße
Flori
-
Hallo Weekend_Warrior,
was sagt der Apache denn warum er nicht mehr starten möchte?
Parallel zum "conf"-Verzeichnis unterhalb "apache" gibt es ein "log"-Verzeichnis in dem sich die "error.log" verbirgt. Dort läßt sich vielleicht ein Hinweis finden warum er "meckert" beim Starten.
Grüße
Flori
-
Hallo zusammen,
ich habe mal eine relativ grundlegende Frage zum objektorientierten Ansatz in PHP...
Bislang habe ich eigentlich nur Beispiele gesehen, wo in der PHP-Datei im oberen Teil die Klasse mit ihren Methoden definiert wurde und dann quasi "am Ende" diese Methoden der Klasse benutzt werden, d.h. direkt innerhalb der einen Datei ein Objekt generiert wird.
Meine Frage bezieht sich nun darauf, ob man sowas in PHP auch trennen kann, d.h. zum Beispiel:
1. ich definiere pro Klasse jeweils eine Datei, z.B. "klasse1.class.php", "klasse2.class.php"
2. ich möchte diese Klassen nun in verschiedenen PHP-Skripten verwenden.
Und gerade zum Punkt "2." ist nun die Frage wie ich da dann die Verbindung schaffen kann??
Habe ich nur die Möglichkeit das über ein "include ("klasse1.class.php");" zu machen oder gibt es bei der OOP in PHP da auch andere Möglichkeiten, die Klassen übergreifend bekannt und verwendbar zu machen?
Sucht vielleicht sogar das Skript, das letztlich ausgeführt wird, selbst nach den dort aufgerufenen Klassen, z.B. erwartet das Skript vielleicht, daß die Klassen-Dateien im gleichen Verzeichnis wie das Skript selbst liegen?
Oder gibt es sowas wie einen "classpath" wie bei Java auch bei PHP?
Wie sähe eine Trennung der Inhalte von Klasse und ausführendem Skript bzw. dann Aufruf einer Klasse, die in einer externen Datei definiert ist möglichst professionell aus?
Oder ginge es tatsächlich nur mittels der Schlüsselworte "include" oder "require"?
Über Beispiele oder erklärende Ausführungen würde ich mich sehr freuen!
Vielen Dank bereits an dieser Stelle @all !
Grüße
Flori
-
Hallo zusammen,
heute mal zu etwas völlig anderem als immer nur den "üblichen" fachlichen Fragen.
Ein Kollege von uns scheidet im nächsten Monaten aus, kehrt zurück in seine Heimat (Schweden) und wird da einer neuen Firma beitreten.
Da er uns in seiner Zeit stehts mit Rat und Tat in Sachen Programmierung (vor allem Java) zur Seite gestanden hat, stellt sich nun die Frage nach einem Abschiedsgeschenk für ihn. Und da wollte ich Euch mal fragen, ob ihr da evtl. ein paar Ideen habt, die vielleicht sogar was mit "Java" zu tun haben. Es sollte nicht direkt die Reise zur gleichnamigen indonesischen Insel sein, aber vielleicht gibts ja noch nen anderen Bezug und weitere Produkte, die mit Java in Verbindung stehen und nicht Buch- oder CD-Form haben.
Ich würde Euch auch gern noch mehr schreiben, zu anderen Interessen, die er hat. Allerdings ist da, zumindest unserem Kenntnis-Stand nach, nicht allzu viel...er war immer sehr still und zurück gezogen trotz aller Versuche ihn mal rauszulocken. Aber eben trotzdem nett.
Würd mich freuen, wenn jemand nen heitere Geschenkidee hat und hier schreibt!
Wie sonst auch, gibts ein großes "Danke" für hilfreiche Tipps im Voraus!
Grüße
Flori
-
Danke erstmal für die ersten Antworten!
Es sollte dann aber PC3200 / 400 heißen2700er mit 400er Taktung gibt es nicht
Uuups...mein Fehler! Hab inzwischen auch mal versucht meine Lücken zu schließen.
Trotzdem dann nochmal gefragt? Vertragen sich PC2700/PC3200, obwohl ich btw erstmal schauen muß, ob dann das Board überhaupt mitmacht.
Das Mainboard orientiert sich am langsamsten Glied in der KetteGenauso wie beim IDE-Strang, SCSI, etc...
Da bin ich doch froh, daß mich da meine Erinnerung doch noch nicht so ganz im Stich gelassen hat. (die "Basics" geraten halt immer mehr ins Hintertreffen. *g*)
Flori
-
Hallo zusammen,
da ich nicht zu den Leuten gehöre, die jeden Tag Arbeitsspeicher-Module einbauen, frage ich zur Sicherheit nochmal hier nach, bevor ich in den nächsten Tagen was falsches tue.
Mein Board unterstützt DDR-RAM PC2700 sowohl mit 333 Mhz als auch mit 400 MHz.
Verbaut ist bislang ein Riegel PC2700-333 (512 MB). Nun möchte ich noch noch 1 GB hinzufügen, finde gerade zu einem Sonderangebot aber nur PC2700-400.
Frage:
Vertragen sich die in der Taktung (333 vs. 400) unterschiedlichen Riegel?
Soweit ich mich recht erinnere wird doch "nur" der 400er quasi gebremst betrieben oder irre mich da und beide zusammen geht nicht?
Vielen Dank für eine Auffrischung meiner Wissensdatenbank im Voraus!
Gruß
Flo
-
Hallo nochmal,
eben kurz als Abschluß-Resumée.
Danke nochmal für eure Hilfe. Bislang läuft alles gut, obwohl sich dieser
Parameter immer noch störrisch anstellt. *g*
Sollte Bedarf bestehen, werde ich auf die Idee mit dem Startskript zurückkommen.
Ein Paket namens "orarun" habe ich unter SuSE 10.1 nicht mehr gefunden, aber wie gesagt, läuft ja und das is für mich erstmal die Hauptsache.
Zu den Details komme ich dann später.
Grüße
Flori
-
Danke an Euch beide,
klingt beides interessant und werde beides mal einrichten bzw. schauen, ob es das Package in 10 noch gibt.
Kleines bissel "offtopic":
Davon ab ist es mir inzwischen gelungen, Oracle zu installieren und zum laufen zu bringen. Auch mit dem nicht ganz den Angaben entsprechenden Parameter "ip_local_..." scheint es zu funktionieren...zumindest bin ich mit meinen "Spielereien" an der DB noch nicht auf Probleme gelaufen.
Werde mal weiter probieren und schauen wie es weiter läuft.
Danke nochmal und Grüße
Flori
-
Hallo DevilDawn,
"keinen Erfolg gezeigt" heißt, daß nach einem Neustart wieder 29999 als zweiter Wert erscheint, wenn ich den Parameter auslese. Oder ist das einfach so?
Ansonsten habe ich noch ein paar andere Vorbereitungen zu treffen, bevor ich dann letztlich mit der eigentlichen Software-Installation starten kann.
Gruß
Flori
-
Hallo zusammen,
im Rahmen einer Software-Installation (Oracle) soll ich u.a. einige Kernel-Parameter anpassen. Die meisten sind "default" schon recht gut justiert, andere ließen sich wie beschrieben ändern, nur bei einem wills nich so recht klappen:
net.ipv4.ip_local_port_range
Steht default-mäßig auf "1024 29999", soll laut Install-Guide aber besser auf "1024 65000" stehen.
Habe folgendes bisher probiert (alles als "root"!) :
Versuch 1:
Folgenden Eintrag in der "/etc/sysctl.conf" gemacht
net.ipv4.ip_local_port_range = 1024 65000
Dann am Prompt: "/sbin/chkconfig boot.sysctl on" Neustart, aber 2. Wert war immer noch 29999 Versuch 2: Hab schon ein bissel gegoogelt (und nebenbei rausgefunden, daß noch ein paar andere Fallstricke auf mich warten könnten bei der Oracle-Installation...aber Schritt für Schritt *g*) und dabei noch eine andere Möglichkeit gefunden mit der man angeblich die Kernel-Parameter anpassen können soll:echo "1024 65000" > /proc/sys/net/ipv4/ip_local_port_range
Hat aber leider auch keinen Erfolg gezeigt.
Typische Fragen an dieser Stelle:
a) Was mache ich vielleicht falsch?
Ist dieser Parameter noch von anderen Sachen abhängig?
c) Läßt sich der Wert in manchen Fällen vielleicht auch gar nich ändern?
Im Voraus bereits vielen Dank an Euch für hilfreiche Antworten!
Danke & Gruß
Flori
-
Hallo zusammen,
habe schon gegoogelt und auch hier im Forum gesucht, aber so recht fündig bin ich noch nicht geworden. Darum wende ich mich jetzt mal mit der Frage an Euch.
Ich bin auf der Suche nach Informationen darüber was man beachten muß, wenn man Adress-/Telefondaten (also ein Telefonverzeichnis) in einem Verein erstellen möchte und diese Daten der einfachen Verwaltung halber in einer Datenbank speichern möchte.
Zum allgemeinen Thema "Datenschutz im Verein" habe ich bereits foldendes Merkblatt gefunden: http://www.lfd.nrw.de/fachbereich/fach_8_2_4.html
Allerdings vermisse ich eine Vorgehensweise wie ich mich dann wirklich gegenüber irgendwelchen Rechtsproblemen absichern kann. Müßte in der Tat jedes Mitglied des Vereins schriftlich dazu einwilligen, daß seine Daten von mir "vorgehalten" werden, damit ich solche Verzeichnisse erstellen kann?
Oder würde es eventuell reichen, einen Mehrheitsbeschluß auf einer Jahresversammlung ins Protokoll mit aufzunehmen und so für die Nachwelt festzuhalten?
Die Daten würden ausschließlich für den Zweck der Erstellung eines Verzeichnisses für alle Mitglieder genutzt. Bezüglich dessen habe ich schon in dem Merkblatt gelesen, daß es sich wohl mit dem Datenschutzgesetz deckt, solange die Liste wirklich nur dafür vorgesehen ist.
Vielleicht kennt sich ja hier jemand möglichst detailliert mit dieser Thematik aus und kann mir Tipps geben wie ich vorgehen kann/muß bzw. auf welche "Fallstricke" man acht geben sollte.
Werde mir auch selbst nochmal das Merkblatt und das BDSG durchlesen...je öfter man sowas ja liest, umso mehr versteht man von diesen ineinander geschachtelten Sätzen.
Vielen Dank für Eure Hilfe im Voraus!!!
Grüße
Flo
-
Hallo zusammen,
meine Frage steckt ja eigentlich schon im Thema. Bislang habe ich nur solche Adapter wie den folgenden gefunden (exemplarisch mal aus ebay.de) :
Jetzt die Frage, ob es soweit auch umgekehrt gibt, d.h. mit 2 PS/2-Steckern (also "male") auf der einen und USB auf der anderen Seite.
Hintergrund ist der folgende:
Habe PS2-Maus und -Tastatur an einen KVM-Switch angeschlossen. Nun gibt die Tastatur langsam den Geist auf...möchte aber wieder Maus und Tastatur jeweils über PS2 an den Switch anschließen, so daß ich eine Kombination für mehrere REchner nutzen kann.
Allerdings verfügt die drahtlose Kombi aus Tastatur und Maus, die ich gerne hätte, laut Beschreibung nur noch über USB-Anschluß.
Tja, und nun suche ich nach nem Adapter, wo ich den USB-Anschluß des Empfängers der Funk-Tastatur-Maus-Kombi einstöpseln kann und deren Enden (PS/2-Stecker) ich an den Switch anschließe.
Weiß jemand, obs so einen Adapter gibt (Bezugsquelle?) bzw. ob das überhaupt technisch möglich ist oder aber, ob ich mich dann doch nach nem anderen Tastatur-/Maus-Set umschauen muß oder nen neueren Switch zulegen sollte in Zukunft?!
Vielen Dank
Grüße
Flo
-
in access vielleicht ....
Nicht nur in Access. IMHO gehört das "AS" im Gegensatz zu vielen anderen Dialekten der einzelmen DBMS zum SQL-Standard.
Auf jeden Fall kannst du die Aliase wie Cleo schon sagte, je nach Belieben mit AS oder ohne AS definieren, z.B. in Access, Informix, MySQL...um nur drei zu nennen.
@Monty82 & all others
Vielen Dank nochmal für eure Hilfe.
Als ich Eure Antworten gesehen hab, fiel endlich der Groschen wieder. *vor die Stirn schlag*
Manchmal kann so'n Assistent mit Klick-Klick wie bei Access doch recht nützlich sein, gell.
Hatte die Abfrage in Informix begonnen; da klappte es simpel mit nem OUTER und dann hatte ich halt probiert in Access (weil ich von Access zu Informix möchte via ODBC) und da gabs halt kein OUTER mehr. Dafür LEFT und RIGHT JOIN....tja, hätt ich mal nich probiert, mir selbst eins zu basteln via SQL, sondern direkt den Rechtsklick auf die Verbindung gemacht...*g*
So klappts auf jeden Fall jetzt erste Sahne!
Bis zum nächsten SQL-Statement.
Viele Grüße
Flori
-
3. Normalform liegt vor und ich verwende MS-SQL. Ich werd das ganze jetzt als Applikation lösen. Danke für die Hilfe.
Hm, ich geh mal davon aus, daß Du mit "MS-SQL" Microsoft meinst und demnach evlt. mit dem SQL Server 200 o.ä. arbeitest.
Da gibts wohl leider wirklich nicht so bequeme Funktionen wie Informix oder Oracle mit INITCAP bieten.
Dieser Link führt zu den String-Funktionen, die SQL Server 2000 so bietet:
Grüße
Flori
-
Hm, dankeschön für die prompte Hilfe schon mal.
Brauche das ganze für eine Access-Datenbank (hätte ich vielleicht mal dabei sagen sollen). Das mit dem LEFT JOIN leuchtet mir auf jeden Fall ein!
Allerdings gibt mir der Ausdruck
SELECT res.projectid,
con1.name AS coordinator,
con2.name AS developer
FROM responsibles AS res
LEFT JOIN contacts AS con1 ON con1.contactid=res.coordinator
LEFT JOIN contacts AS con2 ON con2.contactid=res.developer
eine Fehlermeldung zurück :
Syntaxfehler (fehlender Operator) in Abfrageausdruck 'con1.contactid=res.coordinator
LEFT JOIN contacts AS con2 ON con2.contactid=res.developer'
Wie sähe das mit den zwei LEFT JOINs aus für eine Lösung in Access 2000 ?
Danke nochmal !
Grüße
Flori
-
Also bislang habe ich folgendes SQL-Statement:
SELECT projectid,contacts.name,con.name
FROM responsibles,contacts,contacts AS con
WHERE responsibles.projectid>75
AND coordinator=contacts.contactid
AND developer=con.contactid
Dieses ergibt folgendes Ergebnis:
75 - Paul - Karl
77 - Paul - Karl
Wie man sieht, fehlt mir hierbei aber die 76, da dort ja das Feld "developer" NULL ist. Und wie man den Datensatz jetzt auch noch mit abfragt...da komm ich halt nich so recht weiter momentan.... :-/
Funktion/Methode mit Datenbank-Zugriff. Wann "Commit" ?
in Datenbanken
Geschrieben
Hallo zusammen,
ich habe da mal eine Frage der Kategorie "wie macht man das am elegantesten?"
Gefragt ist eine Funktion/Methode, die von verschiedenen Programmen aus aufgerufen werden kann und quasi als "Dienstleister" fungiert.
Die Funktion soll dazu dienen, Benachrichtigungen/Ereignisse aus den anderen Programmen entgegen zu nehmen und diese dann in eine Datenbank (Oracle) zu schreiben.
Beispiel:
Ein Programm nimmt eine Datei entgegen und macht daraus das Ereignis "Datei erhalten", ein anderes archiviert diese Datei und gibt aus "Datei erfolgreich archiviert" usw...diese Ereignisse werden als Parameter an die Funktion/Methode übergeben.
Trivialerweise ruft nun jedes Programm einfach immer, wenn notwendig, die Funktion auf, um die es hier geht und schreibt das Ereignis in die Datenbank. So weit so gut...denke, so weit bin ich auch schon.
Nun mach ich mir da gerade aber Gedanken drüber, ob das so elegant ist, da man ja jedes "INSERT" in der Datenbank auch mit einem
"Commit" abschließen müßte, damit der Wert dort dauerhaft gespeichert und sofort für andere Anwendungen verfügbar ist.
Meine Frage geht also in die Richtung:
Wie kann man vermeiden, daß nach jedem "INSERT" eines Ereignisses ein "COMMIT" gemacht wird (hmm, da kommt mir gerade der Gedanke, daß
sich das COMMIT-Verhalten auch in der DB noch einstellen läßt...möchte ich aber erstmal nicht dran drehen) bzw. wie kann ich zwar die Ereignisse in der Funktion entgegen nehmen, die Anzahl der COMMITs aber möglichst gering halten?
Hat von Euch jemand schon mal eine solche Funktion/Methode geschrieben und kann mir einen "eleganten" Ansatz geben von der Funktionsweise her?
Würde mich freuen, wenn ihr hilfreiche Anregungen, Web-Links oder eigene Erfahrungen posten würdet!
Vielen Dank im Voraus!!!
Danke und Gruß
Flori