-
Gesamte Inhalte
3812 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Jaraz
-
(html) textfeldinhalt an eine datenbank senden
Jaraz antwortete auf crown's Thema in Skript- und Webserverprogrammierung
Hallo, Das hängt davon ab, mit welcher Sprache du arbeitest. In HTML geht das gar nicht. Also musst du erst einmal näher deine Entwicklungsumgebung beschreiben, oder dich über PHP, ASP, Perl oder Java informieren. Gruß Jaraz -
Hallo, wenn du deine Seite dynamisch mit Servlets erzeugst, geht das mit "request.getRemoteAddress ()". Bei php oder perl gibt es ähnliche Funktionen. Bei einem Applet bekommst du die vom Provider zugewiesene dyamische Adresse nur heraus, indem du eine IP-Verbindung zu einem festgelegten Rechner in diesem Netz (also wahrscheinlich dem Internet) erzeugst unddavon die lokale IP-Adresse abfragst, z.B.: Socket socket = new Socket("mail.provider.de", 25); InetAddress adr = socket.getLocalAddress(); String meineDynAdresse = adr.getHostAddress(); socket.close(); Aber Applets sind OUT. Ob und wie das mit JavaScript geht, weiss ich nicht. Ich hoffe du willst die nur anzeigen, und nicht irgend welche Sicherheitsmechanismen oder Sessionverfolgung über die IP machen, da viele über Proxys ins Internet gehen und somit diesselbe IP haben können. Außerdem kann die eigene IP bei manchen Providern zwischendurch auch wechseln. Gruß Jaraz
-
Hallo, versuchs doch einfach damit, die Schule und deinen Betrieb zu fragen. Wir sind hier nicht allwissend. Wie gesagt, frag die Schule... Dein Betrieb muss dich für die Prüfungen freistellen. Also wenn du unter 18 bist und die Präsentation über 5 Stunden gedauert hat, musst du rechtlich gesehen nicht mehr arbeiten. Über 18 muss die Präsentation dann solange gedauert haben, wie deine normale tägliche Arbeitszeit ist. :eek: Gruß Jaraz
-
Und hier nun noch nen Beispiel mit Tabelle... import java.sql.*; public class HtmlSQLResult { private String sql; private Connection con; public HtmlSQLResult(String sql, Connection con) { this.sql = sql; this.con = con; } public String toString() { // can be called at most once StringBuffer out = new StringBuffer(); // Uncomment the following line to display the SQL command at start of table // out.append("Results of SQL Statement: " + sql + "<P>\n"); try { Statement stmt = con.createStatement(); if (stmt.execute(sql)) { // There's a ResultSet to be had ResultSet rs = stmt.getResultSet(); out.append("<TABLE>\n"); ResultSetMetaData rsmd = rs.getMetaData(); int numcols = rsmd.getColumnCount(); // Title the table with the result set's column labels out.append("<TR>"); for (int i = 1; i <= numcols; i++) out.append("<TH>" + rsmd.getColumnLabel(i)); out.append("</TR>\n"); while(rs.next()) { out.append("<TR>"); // start a new row for(int i = 1; i <= numcols; i++) { out.append("<TD>"); // start a new data element Object obj = rs.getObject(i); if (obj != null) out.append(obj.toString()); else out.append(" "); } out.append("</TR>\n"); } // End the table out.append("</TABLE>\n"); } else { // There's a count to be had out.append("<B>Records Affected:</B> " + stmt.getUpdateCount()); } } catch (SQLException e) { out.append("</TABLE><H1>ERROR:</H1> " + e.getMessage()); } return out.toString(); } }[/PHP]
-
Hallo, der Code ist eigentlich sehr verständlich. Ist halt nur für die Ausgabe auf System.out optimiert. private static final String extendStringTo11( String s ) { if( null == s ) s = ""; while( 11 > s.length() ) s += " "; return s; } [/PHP] Erweitert jeden Wert der Abfrage auf 11 Zeichen, brauchst du bei html also nicht. [PHP]String sDatabase=null, sTable=null; if( 2 <= argv.length ) { sDatabase = argv[0]; sTable = argv[1]; } else { try { BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); System.out.println( "Name der Database eingeben:" ); sDatabase = in.readLine(); System.out.println( "Name der Tabelle eingeben:" ); sTable = in.readLine(); } catch( IOException ex ) { System.out.println( ex ); } } if( null != sDatabase && 0 < sDatabase.length() && null != sTable && 0 < sTable.length() ) { Hiermit kannst du Datanbank und Tabelle beim Start oder nach dem Start des Programms eingeben. Du kannst sie natürlich auch direkt in den Code schreiben. Der try-catch Block ist nun für die Ausgabe zuständig. for( i=0; i<n; i++ ) System.out.print( "+------------" ); System.out.println( "+" ); for( i=1; i<=n; i++ ) // Attention: first column with 1 instead of 0 System.out.print( "| " + extendStringTo11( rsmd.getColumnName( i ) ) ); System.out.println( "|" ); for( i=0; i<n; i++ ) System.out.print( "+------------" ); System.out.println( "+" ); while( rs.next() ) { for( i=1; i<=n; i++ ) // Attention: first column with 1 instead of 0 System.out.print( "| " + extendStringTo11( rs.getString( i ) ) ); System.out.println( "|" ); } for( i=0; i<n; i++ ) System.out.print( "+------------" ); System.out.println( "+" ); [/PHP] In diesem Bereich musst du nun halt die entsprechenden Ausgaben auf die Konsole durch die <tr><td></td><td></td></tr> Tags der HTML Tabelle ersetzen. Wenn du das nicht kannst, weiss ich nicht was du mit deinem Programm willst, bzw würde ich dir raten dich erst einmal mit HTML auseinander zu setzen. Gruß Jaraz
-
Hallo, im folgenden Beispiel an den richtigen Stellen die Tags der HTML Tabelle setzen und das ganze in einer Datei speichern oder direkt in einem Servlet verarbeiten. Gruß Jaraz --------------------------------------------------- import java.io.*; import java.sql.*; public class ShowSqlTable { private static final String extendStringTo11( String s ) { if( null == s ) s = ""; while( 11 > s.length() ) s += " "; return s; } public static void main( String[] argv ) { String sDatabase=null, sTable=null; if( 2 <= argv.length ) { sDatabase = argv[0]; sTable = argv[1]; } else { try { BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); System.out.println( "Name der Database eingeben:" ); sDatabase = in.readLine(); System.out.println( "Name der Tabelle eingeben:" ); sTable = in.readLine(); } catch( IOException ex ) { System.out.println( ex ); } } if( null != sDatabase && 0 < sDatabase.length() && null != sTable && 0 < sTable.length() ) { try { // The following two lines must be adapted for other RDBMS than MySQL: Class.forName( "org.gjt.mm.mysql.Driver" ); Connection cn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/" + sDatabase, "", "" ); Statement st = cn.createStatement(); ResultSet rs = st.executeQuery( "select * from " + sTable ); ResultSetMetaData rsmd = rs.getMetaData(); int i, n = rsmd.getColumnCount(); for( i=0; i<n; i++ ) System.out.print( "+------------" ); System.out.println( "+" ); for( i=1; i<=n; i++ ) // Attention: first column with 1 instead of 0 System.out.print( "| " + extendStringTo11( rsmd.getColumnName( i ) ) ); System.out.println( "|" ); for( i=0; i<n; i++ ) System.out.print( "+------------" ); System.out.println( "+" ); while( rs.next() ) { for( i=1; i<=n; i++ ) // Attention: first column with 1 instead of 0 System.out.print( "| " + extendStringTo11( rs.getString( i ) ) ); System.out.println( "|" ); } for( i=0; i<n; i++ ) System.out.print( "+------------" ); System.out.println( "+" ); rs.close(); st.close(); cn.close(); } catch( ClassNotFoundException ex ) { System.out.println( ex ); } catch( SQLException ex ) { System.out.println( ex ); } } } }[/PHP]
-
Doch, und zwar hier http://selfhtml.teamone.de/navigation/html.htm#frames gleich im ersten Abschnitt. "Zwei oder mehrere Teile in Pixeln oder Prozent angeben, durch Kommata getrennt, z.B. rows="60%,40%". Wildcard * erlaubt, z.B. cols="200,*"." Allerdings kann ich dir gleich sagen, dass das bei Netscape nicht funktionieren wird, da Netscape Frames Horizontal immer in % berechnet bzw die Pixelanzahl auf ganze Prozent rundet. Das ist auch der Grund, warum ich auf Frames grundsätzlich verzichte. Gruß Jaraz
-
Ist aber die einzige Möglichkeit ein Array zu vergrößern. Man sollte sich also schon klar sein, wofür man das Array benötigt. Oder halt eine andere Datenstruktur wählen. Gruß Jaraz
-
Hallo, "FROM" und bei Table gehört ein Tabellenname hin. z.B. "select * from user" Gruß Jaraz
-
Tach, beschränken sich die Policies nicht auf Clients die sich am Domänencontroller anmelden. Ich habe hier ne reine NT Server Maschine die nicht als Domänencontroller läuft. Hier soll sich nun ein User anmelden und halt nur ein bestimmtes Programm (Zeiterfassung) starten können. Alles andere soll nicht erlaubt sein. Nur anmelden Programm benutzen und wieder abmelden. Geht das mit Policies? Gruß Jaraz
-
Hallo, kann ich PC-Anywhere so konfigurieren, das beim Start automatisch ein Programm ausgeführt wird? Wenn der User dann das Programm verläßt, soll sich Pc-Anywhere automatisch beenden. Also auch kein Wechsel per Alt-Tab oder ähnliches. Es geht darum, einer Zweigstelle nur Zugriff auf ein bestimmtes Programm zu gestatten. Gruß Jaraz
-
Hallo, ist es möglich, das ich unter Windows NT einem User soweit einschränke, dass er nur ein bestimmtes Programm dessen Verknüpfung auf dem Desktop liegt ausführen kann? Also kein Alt-Tab, kein Startmenü, kein Taskmanager. Nur das eine Programm und natürlich sollte er sich auch abmelden können. Gruß Jaraz
-
Hallo, wie sollte er die auch kennen. Du definierst meinRatezahl ja in der Methode main und nicht in der Klasse. Du kannst auf die Methoden des aktuellen Objects einer Klasse immer mit this.zZahl() oder einfach nur zZahl() zugreifen. Gruß Jaraz
-
Wieso meldet ihr nicht den User ab, und euch als Admin wieder an? Wenn VNC als Dienst läuft, ist das doch kein Problem. Gruß Jaraz
-
Also gut, du hast es so gewollt. Das folgende Programm ist ein Test von mir, wie man am schnellsten Daten in Mysql über Java mit einer eindeutigen ID einfügt. Als erstes reicht es, wenn du dir Methode 0 anschaust und nachbaust. Gruß Jaraz ------------------------------------------------------------- import java.sql.*; import java.text.*; import java.net.*; class MysqlTest { private Connection con; private ResultSet rs; private int nr; private PreparedStatement psUpdate; private PreparedStatement psInsert1; private PreparedStatement psInsert2; private PreparedStatement psSelect; private Statement stmt; private long t0; private long t1; private double deltaT0; private double deltaT1; private double deltaT2; private static int loops; private static String host; private static String user; private static String pass; private static String db; private static boolean index; public MysqlTest() throws Exception { //Start von Methode 0, einfach einfügen Class.forName("org.gjt.mm.mysql.Driver"); con = DriverManager.getConnection("jdbc:mysql://"+host+"/"+db+"", user, pass); psInsert1 = con.prepareStatement("insert into test1 set myid = ?, nr = ?;"); psInsert2 = con.prepareStatement("insert into test2 set myid = ?, nr = ?;"); stmt = con.createStatement(); stmt.executeQuery("create table test1(myid INT UNSIGNED NOT NULL PRIMARY KEY, nr INT UNSIGNED NOT NULL)"); stmt.executeQuery("create table test2(myid INT UNSIGNED NOT NULL PRIMARY KEY, nr INT UNSIGNED NOT NULL)"); t0 = System.currentTimeMillis(); for(int i=1; i<=loops; i++){ psInsert1.setInt(1,i); psInsert1.setInt(2,i); psInsert1.executeQuery(); psInsert2.setInt(1,i); psInsert2.setInt(2,i); psInsert2.executeQuery(); } t1 = System.currentTimeMillis(); deltaT0 = t1-t0; System.out.println("\nMethode 0 einfach einfügen."); System.out.println(loops+" Datensaetze brauchen "+DecimalFormat.getInstance().format(deltaT0/1000.)+" Sekunden."); stmt.executeQuery("drop table test1"); stmt.executeQuery("drop table test2"); con.close(); //Ende von Methode 0 //---------------------------------------------------------------- //Start von Methode 1 einfügen mit einer Sequenztabelle und der Funktion LAST_INSERT_ID con = DriverManager.getConnection("jdbc:mysql://"+host+"/"+db+"", user, pass); psUpdate = con.prepareStatement("update seq_table set seq = LAST_INSERT_ID(seq+1);"); psInsert1 = con.prepareStatement("insert into test1 set myid = last_insert_id(), nr = ?;"); psInsert2 = con.prepareStatement("insert into test2 set myid = last_insert_id(), nr = ?;"); stmt = con.createStatement(); stmt.executeQuery("create table seq_table(seq INT UNSIGNED NOT NULL)"); stmt.executeQuery("INSERT INTO seq_table VALUES(0)"); if(index){ stmt.executeQuery("create table test1(myid INT UNSIGNED NOT NULL PRIMARY KEY, nr INT UNSIGNED NOT NULL, index(nr))"); stmt.executeQuery("create table test2(myid INT UNSIGNED NOT NULL PRIMARY KEY, nr INT UNSIGNED NOT NULL, index(nr))"); }else{ stmt.executeQuery("create table test1(myid INT UNSIGNED NOT NULL PRIMARY KEY, nr INT UNSIGNED NOT NULL)"); stmt.executeQuery("create table test2(myid INT UNSIGNED NOT NULL PRIMARY KEY, nr INT UNSIGNED NOT NULL)"); } t0 = System.currentTimeMillis(); for(int i=1; i<=loops; i++){ psUpdate.executeQuery(); psInsert1.setInt(1,i); psInsert1.executeQuery(); psInsert2.setInt(1,i); psInsert2.executeQuery(); } t1 = System.currentTimeMillis(); deltaT1 = t1-t0; System.out.println("\nMethode 1 mit einer Sequenz und der Funktion LAST_INSERT_ID."); System.out.println(loops+" Datensaetze brauchen "+DecimalFormat.getInstance().format(deltaT1/1000.)+" Sekunden."); stmt.executeQuery("drop table seq_table"); stmt.executeQuery("drop table test1"); stmt.executeQuery("drop table test2"); con.close(); //Ende von Methode 1 //---------------------------------------------------------------- //Start von Methode 2 einfügen ueber ein SELECT nach dem ersten INSERT con = DriverManager.getConnection("jdbc:mysql://"+host+"/"+db+"", user, pass); psInsert1 = con.prepareStatement("insert into test1 set nr = ?;"); psSelect = con.prepareStatement("select myid from test1 where nr = ?;"); psInsert2 = con.prepareStatement("insert into test2 set myid = ?, nr = ?;"); stmt = con.createStatement(); if(index){ stmt.executeQuery("create table test1(myid INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, nr INT UNSIGNED NOT NULL, index(nr))"); stmt.executeQuery("create table test2(myid INT UNSIGNED NOT NULL PRIMARY KEY, nr INT UNSIGNED NOT NULL, index(nr))"); }else{ stmt.executeQuery("create table test1(myid INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, nr INT UNSIGNED NOT NULL)"); stmt.executeQuery("create table test2(myid INT UNSIGNED NOT NULL PRIMARY KEY, nr INT UNSIGNED NOT NULL)"); } t0 = System.currentTimeMillis(); for(int i=1; i<=loops; i++){ psInsert1.setInt(1,i); psInsert1.executeQuery(); psSelect.setInt(1,i); rs = psSelect.executeQuery(); rs.next(); nr = rs.getInt(1); psInsert2.setInt(1,nr); psInsert2.setInt(2,i); psInsert2.executeQuery(); } t1 = System.currentTimeMillis(); deltaT2 = t1-t0; System.out.println("\nMethode 2 ueber ein SELECT nach dem ersten INSERT"); System.out.println(loops+" Datensaetze brauchen "+DecimalFormat.getInstance().format(deltaT2/1000.)+" Sekunden."); System.out.println("\nDie 1.te Methode benoetigt "+DecimalFormat.getInstance().format(-100+((deltaT1/1000)/((deltaT0/1000)/100)))+"% mehr Zeit als die 0.te Methode"); System.out.println("Die 2.te Methode benoetigt "+DecimalFormat.getInstance().format(-100+((deltaT2/1000)/((deltaT1/1000)/100)))+"% mehr Zeit als die 1.te Methode"); System.out.println("Die 2.te Methode benoetigt "+DecimalFormat.getInstance().format(-100+((deltaT2/1000)/((deltaT0/1000)/100)))+"% mehr Zeit als die 0.te Methode\n\n"); stmt.executeQuery("drop table test1"); stmt.executeQuery("drop table test2"); con.close(); } //Ende von Methode 2 public static void main(String args[]) throws Exception { host = "host"; db = "db"; user = "user"; pass = "pass"; index = true; loops = 100000; MysqlTest mysqlTest = new MysqlTest(); } } [/PHP]
-
Hallo, vielleicht c:\oracle... Die Datei mit dem Treiber heißt classes12.zip. Und ist bei jeder Oracle Installation ob Client oder Server dabei. Gruß Jaraz
-
Hallo, double d = 1.1; Double myDoubleObject = new Double(d); System.out.print(myDoubleObject.doubleValue()); alle primitiven Datentypen haben sogenannte Wrapper Klassen die genauso heißen wie die primitiven nur mit großem Buchstaben am Anfang. (außer int - Integer) Gruß Jaraz
-
Hallo, das bedeutet, das dein Object oder deine Variable nichts enthält, also null. Wenn du nun was mit dem Object machen willst, sagt die JVM dir mit dieser Exception, dass die Methode auf ein leeres Object nicht angewendet werden kann. Gruß Jaraz
-
Das klappt so wunderbar... rufst du "springbeginn.add(Calendar.DATE, (j+i));" so auf? Oder ist diese Zeile in einer anderen Funktion eingebettet. add(int,int) gibt nämlich nichts zurück, sondern ändert direkt das Object springbeginn . Gruß Jaraz
-
@ LuBaer und IJK Eure heile Vorstellung von einer Berufsschule möchte ich haben. (oder eure Berufsschule) Ich bin mittlerweile mit der Ausbildung fertig und kann nur sagen, die BS hat mir nichts gebracht. Ablauf: 06:00 Aufstehen, da Berufsschule weit weg. 07:30 - 09:00 IT-Systeme bei nem Lehrer der nicht mal im Privatunterricht jemanden etwas beibringen kann. Vom fachlichen Wissen ganz zu schweigen. 09:00 - 09:20 Pause, rumhängen mit Typen die ebenso vom Unterricht frustriert sind. 09:20 - 10:50 Berufsbegleitende Fächer. "Kein Kommentar" (Abi) 10:50 - 11:10 Pause (siehe oben) 11:10 - 12:40 WG: Lehrer OK; Stoff OK; Das einzige Fach, was mir etwas gebracht hat. Hätte ich aber alles auch in einem geeigneten Buch nachlesen können. 12:40 - 13:00 Pause (siehe oben) 13:00 - 14:30 AE: Lehrer OK, nur leider hält er sich an die Langsamsten in der Klasse. Das ging soweit, dass er teilweise die, die den Stoff beherrschten, nach Hause geschickt hat. OK, man muss auch auf die schwächeren Rücksicht nehmen, aber wenn die sich nicht Zuhause hinsetzen und lernen, muss man irgendwann härter durchziehen. 16:00 Wieder daheim, genervt und nix schlauer als um 6:30 Uhr. Also, nur für ein paar soziale Kontakte und ein bisschen WG brauche ich nicht 2 Tage die Woche verschwenden. Wir haben uns übrigens oft genug beschwert, hat aber alles nichts gebracht und irgendwann kapituliert man. Wenn ich mich nur auf die Schule verlassen hätte, wäre am Ende mit Sicherheit nicht die Note,, die ich jetzt habe, rausgekommen. Gruß Jaraz
-
Hallo, hast du die Input- und OutputReader auch wieder geschlossen? Gruß Jaraz
-
Hallo, alles was du benötigst, ist ein Typ 4 JDBC Treiber. Diese sind komplett in Java geschrieben und greifen direkt auf die Datenbank zu. Eine "leider nicht vollständige" Übersicht über verfügbare Treiber findest du unter http://industry.java.sun.com/products/jdbc/drivers . Für Access gibt es so einen Treiber nicht. Wenn du allerdings die Microsoft Jet Engine einsetzt, sollen die MSSQL Treiber funktionieren. Ich habe das allerdings mal versucht und nicht hinbekommen. Gruß Jaraz
-
Soweit ich weiss gar nicht. Mitgegangen, Mitgefangen. Leider wusste ich bei meinem Ausbildungsbeginn nicht, dass ich nicht zur Berufsschule muss. Ansonsten hätte ich bei den Vorstellungsgesprächen nachgehakt. Gruß Jaraz
-
Das stimmt so nicht, siehe http://www.bkmitte-essen.de/joa2.htm Alle Jugendlichen, die bis zur Vollendung ihres 21-ten Lebensjahres ein Ausbildungsverhältnis beginnen, sind bis zum Ende ihrer Ausbildungszeit berufsschulpflichtig. Dannach also nicht mehr... Das Problem ist nur, das der Betrieb zustimmen muss und die wenigsten sind dazu bereit. Gruß Jaraz Nachtrag @elpedre, du kommst nicht zufällig aus Laggenbeck?
-
im Moment XP, Kann heute Abend auch auf 2000 testen. Gruß Jaraz