1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. maciek

Beiträge von maciek

  • JavaApplet: Zugriff auf MySQL Datenbank?

    • maciek
    • 28. Februar 2008 um 08:34

    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).

  • dynamisches select aus dynamischer table

    • maciek
    • 16. Februar 2008 um 14:00
    Zitat von java-girl

    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. :winking_face: Danke für's Mitdenken auf jeden Fall.

  • was Besseres als verbatim für SQL Formattierung

    • maciek
    • 16. Februar 2008 um 13:58
    Zitat von Paulchen

    Ich hab nicht die geringste Ahnung. Betreuer fragen?


    werd ich machen. Danke nochmal für die Hilfe. :thumb:

  • was Besseres als verbatim für SQL Formattierung

    • maciek
    • 16. Februar 2008 um 13:42
    Zitat von Paulchen

    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?

  • dynamisches select aus dynamischer table

    • maciek
    • 16. Februar 2008 um 13:40
    Zitat von java-girl

    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:

    Code
    group      item
    a, b, c    a
    a, b       a
    a          a
    a, b, c    b
    a, b       b
    a, b, c    c
    c          c

    dann würde ich gerne mit der folgenden Query, das superset von jedem item finden:

    SQL
    SELECT 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:

    SQL
    SELECT 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?

  • was Besseres als verbatim für SQL Formattierung

    • maciek
    • 16. Februar 2008 um 13:23

    danke für den Tipp. Hab mich schon fast angefreundet mit dem package. :winking_face: 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

  • was Besseres als verbatim für SQL Formattierung

    • maciek
    • 15. Februar 2008 um 22:38

    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.

  • dynamisches select aus dynamischer table

    • maciek
    • 15. Februar 2008 um 22:35
    Zitat von java-girl

    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

    Code
    CREATE OR REPLACE TYPE t_varchar2_column AS TABLE OF VARCHAR2(4000);

    ü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.

  • dynamisches select aus dynamischer table

    • maciek
    • 14. Februar 2008 um 18:07

    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 ...

  • PL SQL: Untermengen aggregieren

    • maciek
    • 11. Februar 2008 um 13:44
    Zitat von Erklärbär

    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.

  • PL SQL: Untermengen aggregieren

    • maciek
    • 11. Februar 2008 um 12:10

    Hallo,

    ich stehe derzeit bei der folgenden Fragestellung komplett an ... ich habe folgende Liste gegeben:

    Code
    items      value
    a, b, c    1
    a, b       2
    a          3

    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:

    Code
    items      sum(value)
    a, b, c    6

    Hat jemand eine Idee dazu?

  • dynamisches select aus dynamischer table

    • maciek
    • 9. Februar 2008 um 19:24

    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
    CREATE 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;
    /
    Alles anzeigen
  • CSS Empfehlung gesucht

    • maciek
    • 23. Januar 2008 um 13:05

    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.

  • CSS Empfehlung gesucht

    • maciek
    • 23. Januar 2008 um 09:41

    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.

  • CSS Layout Problem, float

    • maciek
    • 17. Januar 2008 um 23:57
    Zitat von davewood

    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 ...

  • CSS Layout Problem, float

    • maciek
    • 17. Januar 2008 um 14:20

    hilft das in etwa? Position (relative, -50px) dürfte eigentlich in keinem browser Probleme machen.

    HTML
    <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>
    Alles anzeigen
  • Oracle-ODBC Treiber bockt

    • maciek
    • 17. Januar 2008 um 11:26
    Zitat von a9bejo

    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.

    Zitat von a9bejo


    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.

  • Oracle-ODBC Treiber bockt

    • maciek
    • 16. Januar 2008 um 23:29
    Zitat von a9bejo

    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.

  • equals leerer string

    • maciek
    • 22. Dezember 2007 um 01:31
    Zitat von blackx_zero

    maciek das überprüfen auf null kann man elegant umgehen, indem man das ganze so schreibt:

    Code
    if ("".equals(....)) { }


    das stimmt, allerdings ist da die Möglichkeit des " ", die ich mit trim() abfangen würde nicht berücksichtigt ...

  • MySQL / Java - Umlaute

    • maciek
    • 5. Dezember 2007 um 18:31
    Zitat von el.a.er.a

    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.

Rechtliches

Impressum

Datenschutzerklärung