abgesehen von dem was Wings-of-Glory geschrieben hat, würde ich mir überlegen, ob Du 100% ein Applet brauchst. Falls nicht, mach gleich alles serverseitig. Applets machen nur Probleme (so wie unnötiges JavaScript).
Beiträge von maciek
-
-
Ja doch, sry, hab' den anderen Thread nicht gesehen.
Hm...kniffelig. Na ja also da weiß ich auch nicht weiter, tut mir leid!
mag'da nix. Danke für's Mitdenken auf jeden Fall. -
Ich hab nicht die geringste Ahnung. Betreuer fragen?
werd ich machen. Danke nochmal für die Hilfe. :thumb: -
Du kannst das Ganze in ein "floating environment" einfügen, damit es sich verhält wie ein Bild bzw. eine Tabelle.
ok, danke ... aber ist das in Diplomarbeiten üblich, oder nicht? -
Ich verstehe noch immer nicht ganz was du genau meinst, aber wie ich das momentan sehe ist es doch so dass du einen Parameter als VARCHAR2 mitgibts, der den Typ der Operation angibt. Wenn du die gesamte Operation angibts, kannst du dir deinen SQLString daraus basteln.
oki ... ich werde versuchen, das Problem noch genauer zu erklären. Wie schon anfangs erwähnt, hab ich die function "column_to_string" (mittlerweile hab ich sie "rows_to_string" getauft). Eigentlich ist das Problem hier, teils des unter "PL SQL: Untermengen aggregieren" beschriebenen Problems.Wenn ich jetzt eine Tabelle items_to_group habe, die so ausschaut:
dann würde ich gerne mit der folgenden Query, das superset von jedem item finden:
SQLSELECT item, rows_to_string(CAST(COLLECT(group) AS t_varchar2_column), ', ', 'DISTINCT', 'ASC') AS superset FROM items_to_group GROUP BY item ORDER BY item;
Wie man jetzt sieht, bekommt die function, also keinen Tabellennamen. D.h. das select ist nicht "einfach" ein String. Natürlich könnte man jetzt von der Funktion wollen, dass die items nicht mit "," getrennt sind, oder "DESC" und nicht "ASC" sortieren, etc. etc.
Die Funktion könnte man genauso für z.B. diese Query verwenden:
SQLSELECT table_name, rows_to_string(CAST(COLLECT(column_name) AS t_varchar2_column), ', ') AS tab_cols FROM user_tab_columns GROUP BY table_name ORDER BY table_name;
Die Columns sind jetzt zwar unique, aber die funktion würde sie den Namen nach sortiert in einer Zeile anzeigen.
Erklärt dies mein Problem besser?
-
danke für den Tipp. Hab mich schon fast angefreundet mit dem package. Eine (theoretische) Frage bleibt für mich aber noch offen: Ist es üblich, dass man listings über eine Seite hinweg umbrechen lässt? Standardmäßig scheint es so zu sein, dass die listings in den Text eingebettet werden und nicht wie figures ganz oben auf einer (passenden) Seite platziert werden. Ich finde, es schaut nämlich ein bissi komisch aus, wenn das listings (vor allem, wenn man einen Frame drum herum baut) auf die nächste Seite umbricht.
Übrigens haben mir diese zwei Links auch geholfen:
http://en.wikibooks.org/wiki/LaTeX/Packages/Listings
http://blog.robert-kummer.de/2006/04/latex-…de-listing.html -
Hallo,
ich schreibe (endlich!) meine Diplomarbeit in LaTeX. Dabei kommen sehr viele SQL commands vor, die ich sinnvoll formatieren möchte. Das verbatim packet hinkt da leider ziemlich.
Könnte mir vielleicht jemand etwas empfehlen?
Thanx.
-
Also es wird ein Cursor übergeben und in dem steht dann der Tabellenname drinnen?
sorry, hab ich mich vielleicht zu ungenau ausgedrückt. Es eine Spalte einer Tablle vom Typübergeben. Auf dieser Spalte soll dann ein dynamischer Befehl, der ja nach den anderen Parametern ein SELECT, oder SELECT DISTINCT, oder ein ORDER BY ASC, oder ORDER BY DESC etc. enthält.
-
danke für das Beispiel, allerdings löst das mein Problem nicht. Das mit dem dynamischen SQL habe ich schon verstanden gehabt, aber ... das Problem ist eben, dass das select nicht aus einer tabelle ("tname"), sondern aus einem anderen cursor, der der methode übergeben wird, gemacht werden soll ...
-
wär dein problem gelöst.
danke für den input, aber ... leider löst dies das Problem nicht wirklich ... denn die Anzeige von "a, b, c" darf nicht verloren gehen ... mein derzeitiger Status liegt bei der Idee, dass ich um einen self-join und eine PL/SQL Funktion nicht herumkomme. -
Hallo,
ich stehe derzeit bei der folgenden Fragestellung komplett an ... ich habe folgende Liste gegeben:
Die Aufgabe liegt jetzt darin, mittels (PL) SQL zu erkennen, dass a bzw. a, b ein subset von a, b, c sind und die Summe der values darzustellen, also:
Hat jemand eine Idee dazu?
-
Hi,
ich bring keine PL SQL funktion zusammen, die dynamisch den command code zusammenbaut um aus einer dynamischen table zu selecten. Hat jemand vielleicht eine Idee, wie man oracle dazu überzeugen kann?
Die Funktion soll dazu dienen, gegebene rows beim grouping in einen csv string umzuwandeln. Ohne dem dynamischen zusammenbasteln funkt's, aber ich mag nicht 15x else if, else if, etc. schreiben.
Code
Alles anzeigenCREATE OR REPLACE TYPE t_varchar2_column AS TABLE OF VARCHAR2(4000); / CREATE OR REPLACE FUNCTION COLUMN_TO_STRING (P_VARCHAR2_COLUMN IN t_varchar2_column ,P_DELIMITER IN VARCHAR2 := ',' ,P_FILTER IN VARCHAR2 := 'DISTINCT' ,P_SORT IN VARCHAR2 := 'ASC' ) RETURN VARCHAR2 IS l_string VARCHAR2(32767); v_sorted_column t_varchar2_column; v_command varchar2(4000); BEGIN -- check whether the column contains any values IF p_varchar2_column.COUNT = 0 THEN RETURN NULL; END IF; IF (p_filter = 'DISTINCT') THEN -- select distinct values v_command := 'SELECT DISTINCT *'; ELSE -- select all values v_command := 'SELECT *'; END IF; v_command := v_command || ' BULK COLLECT INTO v_sorted_column'; v_command := v_command || ' FROM TABLE(p_varchar2_column) t'; IF (p_sort = 'ASC' OR p_sort = 'DESC') THEN -- add ORDER BY clause v_command := v_command || ' ORDER BY 1 ' || p_sort; END IF; EXECUTE IMMEDIATE v_command; -- loop through the column values FOR i IN v_sorted_column.FIRST .. v_sorted_column.LAST LOOP IF i != v_sorted_column.FIRST THEN l_string := l_string || p_delimiter; END IF; l_string := l_string || v_sorted_column(i); END LOOP; RETURN l_string; END column_to_string; /
-
bin völlig der gleichen Meinung: CSS kannst Du nur learning by doing machen. Außer Du hast überhaupt keine Ahnung. Aber auch da beschränkt sich das "Lesepotential" für mich auf max. 1 Stunde.
-
also ich hab noch nie ein Buch für CSS oder HTML benutzt. Du findest Antworten auf fast alle Fragen im Netz. Meistens reicht es wie schon erwähnt http://www.selfhtml.de aufzumachen.
Was auch noch sehr super ist, damit man sieht, was man so alles mit CSS anstellen kann und sich vielleicht so manchen trick abschauen kann, ist http://www.csszengarden.com. Da ist die (X)HTML-Struktur vorgegeben und die Leute uploaden nur verschiedene CSS designs.
-
maciek: Ich muss beim ersten Bild -50px, beim zweiten -100px, usw. verwenden.
das setzt sich so fort. auch komisch.
das ist komisch ... was für ein Browser? Eigentlich müsste es konstant mit -50px gehen ... -
hilft das in etwa? Position (relative, -50px) dürfte eigentlich in keinem browser Probleme machen.
HTML
Alles anzeigen<div style="background-color:#f00; width:200px; height:100px; clear:both; float: left;"> blablabla </div> <div style="background-color:#0f0; width:200px; height:100px; clear:both; float: right; position:relative; top:-50px;"> blablabla </div> <div style="background-color:#00f; width:200px; height:100px; clear:both; float: left; position:relative; top:-50px;"> blablabla </div>
-
Aus java.sql.Connection#setAutoCommit(boolean):
"The commit occurs when the statement completes. ...For Select statements, the statement is complete when the associated result set is closed."Stell dir mal vor Du machst ein select auf eine Tabelle, dann machst Du ein Update auf die Tabelle, und dann ließt Du aus dem ResultSet. Es kann meines Wissens nach nicht garantiert werden, das die Daten hinter dem ResultSet zwischengespeichert werden. D.h. Es kann einen Konflikt mit dem Update geben, solange das Select nicht vollstaendig abgeschlossen ist.
also was in der generischen Connection Klasse steht, mag eine Sache sein. Bei Oracle kann aber ein read Zugriff in der Regel nicht von einem modifying Zugriff "geblockt" werden. Ich habe jetzt leider nicht die Zeit, einen passenden Link zu diesem Thema zu finden. Kann aber zu diesem Thema allen das Buch "Expert Oracle Datbase Architecture" von Thomas Kyte (das ist der von "ask Tom" bei oracle) sehr empfehlen.
Stimmt, aber die Connections werden ja in der Regel wiederverwendet. Wenn Java Girl hinter ihrem Driver Manager einen Connectionpool hat, dann wird während der ganzen Prozedur vielleicht nur eine einzige Connection aufgebaut. In jedem Fall darf man sich aber nicht darauf verlassen, das ein ResultSet durch die Connection geschlossen wird. Manche Pools benutzen z.b. eine Wrapper-Klasse ueber der eigentlichen Connection und wenn Du close() aufrufst, wir die Connection tatsaechlich nur für den nächsten Zugriff freigegeben.
Also erstens habe ich gestern in der Eile etwas zu schnell getippt: Eigentlich wollte ich sagen, dass beim Schließen jedes Statements die dazugehörigen ResultSets ebenfalls geschlossen werden.Zweitens gebe ich Dir recht, dass Statements und ResultSets immer explizit geschlossen werden sollten und nicht der Java garbage collection überlassen werden sollten, weil man sonst schnell in cursor overflow Probleme geraten kann. Und das mit dem nicht schließen der connection in einem Pool stimmt natürlich auch.
Drittens halte ich es für unwahrscheinlich, dass sich statements - auch wenn sie modifying sind - einer connection gegenseitig locken können. Außer die connection wird aus irgendeinem Grund an zwei Threads übergeben, die wirklich gleichzeitig versuchen modifying statements auszuführen. Dann muss eine Ausführung warten, bis die andere ausgeführt worden ist, aber nicht bis die erste Änderung commited worden ist.
Nimm Dir einfach mal tora oder toad her und exekutiere zwei modifying statements hintereinander auf der gleichen Tabelle. Da musst Du auch nicht das erste committen bevor Du das zweite ausführst. Wenn Du aber zwei connections aufmachst, dann wirst Du sehen, dass Du das erste (auf der ersten connection) committen musst, bevor Du das zweite modyfing statement ausführen kannst. Bei einem read Zugriff über die zweite connection wirst Du nie Probleme haben.
-
Vieleicht eine naive Frage, aber hast Du dich schon mit den selben accountdaten ueber einen anderen client (commandline, Toad oder so) eingeloggt und versucht ein update zu machen? Eventuell blockt das Statement ja auch da. Oder vielleicht hat der Account nicht die notwendigen Rechte, und der Treiber versaut das Errorhandling. Read und Insert Rechte vergeben, aber keine updates oder deletes zu erlauben, macht ja manchmal durchaus Sinn.
Versuch vielleicht mal ein explizites commit [b]vor[.b] dem execute(). Z.b. ein select statement wird erst committed, wenn das ResultSet geschlossen wurde. Vielleicht leaked das ja irgendwo. Prüf deshalb auch ob alle ResultSets ordentlich geschlossen werden.
das Erstere würde ich auch empfehlen. Lass Dir mal nur die sql command ausgeben ohne sie auszuführen. Nimm die command und lass sie über tora, toad, oder was auch immer laufen. Geht das?Was das commit (!) einer select command betrifft, so bin ich ein bissi sprachlos. Soweit meine bescheidenen Oracle-DB-Kenntnisse reichen: Es gibt entweder ein select, dann auch ein ResultSet, aber nix zu committen. Oder aber es ist eine modifying command (insert/update/delete), dann kann man zwar was committen (es sei denn es ist autocommit eingestellt), aber es wird kein ResultSet zurückgeliefert.
Im übrigen werden alle ResultSets geschlossen, wenn die Connection geschlossen wird.
-
maciek das überprüfen auf null kann man elegant umgehen, indem man das ganze so schreibt:
das stimmt, allerdings ist da die Möglichkeit des " ", die ich mit trim() abfangen würde nicht berücksichtigt ... -
ich hab eine Frage. Ich muss fuer ein Programm Daten aus einer MySQL-Datenbank rauslesen. Wenn jetzt jedoch Umlaute in der Datenbank stehen, dann werden die in Java komisch ausgegeben ... das "ö" wird zu einem " usw.
Weiß jemand vielleicht, was ich da tun kann? Ich braeuchte es fuer Windows XP, das Programm soll darunter laufen.
ich schätze, dass Java glaubt es ist ISO und es ist UTF-8. Oder MySQL glaubt es ist UTF-8 dabei kommt es als ISO daher beim Reinschreiben, oder so ähnlich. Check mal die Kodierung Deines HTML Formulars (ich nehme, Du hast eins) und die Kodierung des Feldes in der DB.