Zum Inhalt springen

lesezeichen

Mitglieder
  • Gesamte Inhalte

    40
  • Benutzer seit

  • Letzter Besuch

Beiträge von lesezeichen

  1. So, ich habe mal einen Installer mit NSIS kompiliert. Dabei sind Apache 2.0 und PHP5...

    Das funktioniert soweit auch ganz gut, lässt sich installieren etc.

    Allerdings funktionieren die URL-Parameterangaben nicht mehr?

    Ich habe in meinen Scripts Parameter per URL übergeben. Da das sowieso nur intern verwendet wird, spielt auch die Sicherheit dabei keine große Rolle.

    Aber diese Parameterübergaben werden auf einmal nicht mehr interpretiert? Woran kann das denn liegen? PHP-Konfigurationsproblem?

  2. Das hat jetzt vielleicht nicht zwingend was mit deinem Problem zu tun nur hast du schon mal daran gedacht das der Nutzer deines PHP Scriptes vielleicht schon einen Apache und PHP Laufen hat und das er dadurch vielleicht Probleme bekommen könnte wenn er jetzt deinen Installer ausführt.

    Ich kenne jetzt dein PHP Script nicht aber wäre es nicht einfacher dem User zu sagen das er um es nutzen zu können einen Webserver und PHP installiert haben muss. Du kannst ihm ja dann per Link auf die XAMPP Seite lotsen.

    Vielleicht gibt es ja auch User die überhaupt nicht Windows nutzen dann stehst du vor den nächsten Problem.

    Schön, dass Du Dir Gedanken darüber machst, Du hast mit dem ersten Sinn Deiner Aussage vielleicht auch recht.

    Vielleicht sollte ich nur das Script selber in einen Installer packen ... Ich werde das mal besprechen.

    Aber üblicherweise kann man sagen, dass meine Benutzer keinen Webserver haben und Windows nutzen.

  3. auf der windowsseite arbeite ich gerne mit innosetup, wenngleich es natürlich haufenweise andere gibt: MSI, NSIS, VISE.

    das grund-startscript ist über wizard erstellbar. ein icon und ein grosses bild sind dem installer beifügbar. zur softwareverteilung auf eine grössere rechnerumgebung würde ich allerdings fast schon zu MSI raten.

    zumindest bei inno sind die zielpfade fix einstellbar oder aber von installierenden benutzer änderbar. auch befehlsscripte, registry-einstellungen o.ä. lassen sich während der installation ausführen. starten von apache lässt sich über ein "net start apache(2)" bewerkstelligen.

    auch vorgefertigte pakete (z.b. XAMPP) könntest du als beispiel für dein installerpaket nehmen. ich persönlich bin allerdings eher kein freund von solchen paketen, weil es dem anfänger zwar gute eine gute kontrolle, aber wenig einsicht in die wahre materie bietet. ich behaupte mal, dass 80% der forumbenutzer hier, die XAMPP verwenden, augenscheinlich nur die allerwenigsten wichtigen apache-konfigurationsdirektiven kennen *duck* :D

    s'Am<glüh>stel

    Ich vermute auch, dass es das beste ist, wenn ich zunächst erstmal ein vorgefertigtes Paket als Beispiel nehme. Ich möchte mich eig. nicht zu lange mti der Installer-Geschichte aufhalten, denn wenn man es nicht zu genau nimmt, dann reicht auch ein fertiges Paket und eine .bat, die ein paar Skripte umkopiert. Sie natürlich nicht so schön aus ... oder vielleicht ...

    Ist das nicht am sinnvollsten im Sinne der Verhältnismässigkeit XAMPP zu nehmen und da einfach am Ende des Installers meine besagte .bat mit ausführen zu lassen.

    Das müsste doch gehen, XAMPP ist doch Open-Source, d.h. auch der Installer ist frei änderbar, oder?

  4. wenn ich davon ausgehen kann, dass du apache und php binary auslieferst :D

    auf einem testsystem alles vorkonfigurieren, logfiles ausleeren - wirkt sauberer :) -, mit dem installer deiner wahl den apachen, php und scripte zusammenpacken, zielpfade vorgeben, dein gebrandetes php-script im apache\htdocs mitliefern. wenn der installer es unterstützt, startskripte zum starten des apachen miteinpacken und bei installation gleich aufrufen, plus vielleicht gleich die localhost-startseite im defaultbrowser öffnen.

    s'Amstel

    welchen installer schlägst du denn vor, d.h. welcher ist einfach zu erstellen. ideal waere natuerlich, wenn der pfad einstellbar ist, mehr optionen muessen eig. nicht sein. auch ein bild sollte bei dem installer eingefuegt werden koennen.

    der letzte teil ist mir allerdings unklar, werden startskripte direkt mitgeliefert bei apache? wie bindet man diese denn in nen installer ein & wie ruft man die startseite auf?

    ist das alles direkt via apache httpd.conf einstellbar?

    wichtig ist mir zunaechst ein simpler installer, da ich sowas noch nie getan habe.

    danke.

  5. Hallo Freunde der glühenden Tastaturen,

    ich hab mich schon immer gefragt, wie man eig. einen Installer baut. Hat da jemand von Euch Erfahrungen?

    Konkret sieht das so aus, dass ich einen einfachen Installer haben möchte, der

    - den aktuellen Apache

    - das aktuelle PHP-Modul

    - und ein eigenes PHP-Script in einen dafür vorgesehenen Verzeichnis

    installiert, wobei natürlich alles so konfiguriert sein soll, dass der Apache mit PHP als Localhost und innerhalb eines Windows-Netzwerks funktioniert.

    Kein sonstiges Zeug, kein MySQL und sowas..

    Ist das schwierig? Hat jemand sowas schonmal gemacht?

  6. Hier nochmal eine Zusammenfassung der Problematik:

    ich greife via MS JET OLEDB auf eine ACCESS-DB zu, führe

    SQL-Statements aus.

    Ich möchte mir Datensätze aus einer ACCESS-Tabelle anzeigen lassen,

    die zwischen bestimmten Datumsangaben liegen. Der Datentyp des

    Feldes, in dem die Datumsangaben liegen ist Text. Zudem sind

    die Datumsangaben in 3 verschiedenen Formaten. Ich formatiere also

    mit einer einer Funktion namens DateValue um.

    01.07.2005

    02/02/2005

    2005.02.03

    Als SQL-Statement sieht das so aus:

    SELECT eigenschaft_name, eigenschaft_wert

    FROM tabelle

    WHERE DateValue(eigenschaft_wert) Between DateValue("01.01.2005") And

    DateValue("30.09.2005");

    Das funktioniert auch soweit gut.

    Jetzt das Problem; neben den Datumsangaben können in "eigenschaft_wert" auch

    Personennamen enthalten sein (Wird über "eigenschaft_name" erkenntlich,

    darin steht entweder "Wer" oder "Wann"). Wenn ein Personenname in

    "eigenschaft_wert" enthalten ist, bringt die obige SQL-Anweisung einen Fehler, nämlich

    "Description: Datentypen in Kriterienausdruck unverträglich."

    Der Fehler ist mir auch klar, die Funktion DateValue kann mit dem

    Personennamen nichts anfangen. Ich weiss nur nicht, wie ich das

    umgehen kann.

    Die Datensätze von Eigenschaft_name und Eigenschaft_wert sehen also z.B. so aus:

    Wann 09.09.2005

    Wer peter

    Wann 01.07.2005

    Wann 02/02/2005

    Wann 2005.02.03

    Vielleicht hat jemand von Euch eine Idee, wie man das Problem lösen

    kann. An der Datenbank darf nichts verändert werden, ich darf

    lediglich via OLEDB-Treiber darauf zugreifen.

    Vielen Dank.

  7. 
    SELECT value
    
    FROM Tabelle1
    
    WHERE value Between DateValue("01.01.2005") And DateValue("31.12.2005");
    
    
    In dem Feld Value hab ich folgendes stehen: 09.09.2005 peter 01.07.2005 02/02/2005 2006.10.09 2005.02.03 und die Abfrage bringt folgendes Ergebniss: value 09.09.2005 01.07.2005 02/02/2005 2006.10.09 2005.02.03
    Nimm mal bitte diese Werte mit auf: 2006.02.08 2006.02.15 2006.02.08 22/02/2006 und probiers nochmal. Was kommt dabei raus? Edit: Ich sehe gerade, dass Du auch "2006.10.09" in Deiner Ausgabe hast. Das ist natürlich nicht gewollt. Das ist das Problem, welches man mit
    SELECT DateValue(value) as date_value
    
    FROM Properties
    
    WHERE DateValue(value) Between DateValue("01.01.2005") And DateValue("31.12.2005");
    
    

    umgehen kann ...

    Vielleicht sollte man versuchen mit einer Art In Select zu arbeiten ... Hast Du eine Idee, wie?

  8. Jetzt hab ichs :)

    
    WHERE value Between DateValue("08.08.2005") And DateValue("04.10.2005")
    
    

    [EDIT]

    Zu früh gefreut die Daten im Format 08/08/2005 werden nicht erfasst:(

    Dir macht das anscheinend mehr Spass als mir. :-)

    Auch das funktioniert nicht, in diesem Fall gibt er nur:

    When (Date) 04/07/2005

    When (Date) 04/07/2005

    When (Date) 04/08/2005

    When (Date) 04/08/2005

    When (Date) 04/10/2005

    When (Date) 04/10/2005

    Nicht aber ALLE Daten, die in diesem Zeitraum liegen ...

    Hmm??

    Gibt es nicht so In Select Funktionen, mit denen man zuerst nach einem Attribut und dann nach dem anderen auswählen kann?

  9. Oops, zu früh gefreut.

    Ich habe jetzt mal eine Datenbank genommen, in der neben den Datumsangaben auch andere Daten in den Value-Felder stehen (z.B. normale Personennamen, bzw. kurze Texte).

    Mit dieser DB, die exakt den gleichen Aufbau hat, nur neben den Datumsangaben auch die Namen bzw. Texte kommt die folgende Fehlermeldung:

    Description: Datentypen in Kriterienausdruck unverträglich.' 
    Ich dachte zuerst, dass ich das mit einer expliziten Angabe in der Where-Klausel lösen kann, d.h. der Angabe, dass nur die values genommen werden sollen, die auch tatsächlich Datumsangaben entsprechen, also so:
    SELECT property_name, DateValue(value) AS date_value
    
    FROM properties
    
    WHERE property_name="When (Date)" AND DateValue(value) Between DateValue("08.08.2005") And DateValue("04.10.2005")
    
    ORDER BY DateValue(value)

    Aber das funktioniert nicht; der oben besagte Fehler kommt ....

    Das liegt vermutlich daran, dass er trotz der zusätzlichen Where-Klausel alle Felder von value in DateValue zu konvertieren versucht, oder?

    Kann man das umgehen?

  10. Also du teilst der Abfrage jetzt mit das du die selektierten Werte als Datum bekommen möchtest. Nun musst du ihr nur noch "sagen" das deine übergebenen Texte auch vom Typ Datum sind.

    Also :

    
    SELECT DateValue(value) AS date_value
    
    FROM properties
    
    WHERE (((DateValue([value])) Between DateValue("08.08.2005")
    
     And DateValue("04.10.2005"))
    
    ORDER BY DateValue(value);
    
    
    Klingt logisch, hattest Du ja eig. auch schon mit Deinem ersten Post vorgegeben (Sorry). Jedoch kommt es dann zu folgendem Fehler:
    Description: Syntaxfehler (fehlender Operator) in Abfrageausdruck '(((DateValue([value])) Between DateValue("08.08.2005") And DateValue("04.10.2005")) ORDER BY DateValue(value);'.

    Der Operator ist doch vorhanden (AND), oder habe ich da was übersehen?

  11. So, das müsste korrekt sein:

    SELECT DateValue(value) AS date_value

    FROM properties

    WHERE (((DateValue([value])) Between "08.08.2005" And "04.10.2005"))

    ORDER BY DateValue(value);

    Leider entsteht dabei wieder das Problem, dass nicht alle Datensäzte einbezogen werden.

    Korrekt wäre:

    08.08.2005

    08.08.2005

    08.08.2005

    08.08.2005

    12.08.2005

    12.08.2005

    01.09.2005

    19.09.2005

    19.09.2005

    19.09.2005

    27.09.2005

    27.09.2005

    27.09.2005

    01.10.2005

    04.10.2005

    04.10.2005

    Die Ausgabe der oben genannten SQL-Abfrage ist aber:

    08.08.2005

    08.08.2005

    08.08.2005

    08.08.2005

    04.10.2005

    04.10.2005

    08.02.2006

    08.02.2006

    08.02.2006

    08.02.2006

    08.02.2006

    Eigentlich sollten die Werte doch jetzt als Datumswerte erkannt werden, warum besteht noch immer das Problem ...Wie kommt überhaupt die 2006 da rein?

    Vielleicht hat ja jemand noch eine Idee!

    Besten Dank

  12. Super, eine Abfrage der Art

    SELECT DateValue(value) FROM properties;

    spuckt schonmal alles einheitlich formatiert aus. Das bedeutet, dass die ACCESS-Funktionen wenigstens verfügbar sind.

    Die Ausgabe bekommt die Spaltenüberschrift EXPR1000, die allerdings erst bei der Ausgabe ansich generiert wird.

    Wie wende ich jetzt das BETWEEN an, um zu schauen, ob die richtigen Werte gefunden werden? Innerhalb des Statements habe ich ja keinen Zugriff auf value ... ?

    Danke!

  13. Hmmmm .. ok verstehe hatte das vorher nicht ganz mitbekommen, entschuldige.

    Dann versuch doch mal folgendes:

    
    
    SELECT SUBSTR( DATUM, 3, 1)
    
    
    wenn das funktioniert:
    
    
    SELECT SUBSTR( DATUM, 3, 1) & "5"
    
    oder
    
    SELECT SUBSTR( DATUM, 3, 1) & '5'
    
    
    Wenn das soweit funktioniert:
    
    
    SELECT SELECT DATUM "DATUM_NEU" IF SUBSTR( DATUM, 3, 1) = '/' THEN 'OK'
    
    
    
    So baust du dir den kompletten String zusammen, prüfst welcher Teil funktioniert und welcher nicht. Dann hast du am Ende wenn du mein zweites Posting betrachtest alle Datumseinträge im richtigem Format und kannst diese mit WHERE Between abfragen.
    Danke; leider wieder ein Problem mit Microsoft.Jet.OLEDB.4.0.
    Fatal error: Uncaught exception 'com_exception' with message 'Source: Microsoft JET Database Engine
    
    Description: Undefinierte Funktion 'SUBSTR' in Ausdruck.

    Das gleiche gilt im Übrigen für TO_DATE ...

    Viele Möglichkeiten bleiben nicht, oder?

  14. D.H du musst wie ich dir bereits geraten habe die Werte umformatieren ich habe dir auch ein Beispiel dazu geliefert, mehr kann ich nicht tun du hast nun alle Möglichkeiten. Schau dir den Syntax einer IF THEN ELSE Anweisung auf der SQL Seite an und dann fang langsam an zu testen dann baust du den String komplett auf.

    Richtig, ich fürchte nur, dass das so, wie Du mir geraten hast mit dem JetDirect-Treiber nicht funktioniert.

    Nochmal etwas ... mit SQL auf eine Access Datenbank mittels ODBC Treiber zuzugreifen ist unnötig. Erstell doch einfach eine eigene Access Datenbank und dann verknüpfst du die Tabelle die du benötigst in deine Datenbank und erstellst dort die passende Abfrage auf die Verknüpfte Tabelle.

    Unnötig ist das nicht, denn es geht darum via PHP direkt die ACCESS-Datenbank zuzugreifen und bestimmte (!) Daten in XML zu formatieren.

    Zur Not hole ich mir auch alle Datumsangaben mit PHP raus und formatiere die dort um - ich dachte nur es gäbe einen einfacheren Weg.

  15. Wenn ich das richtig verstanden habe gibt es also in der DB ein Textfeld das Datumswerte in verschiedenen Formaten enthält. Diese Feld kann aber auch andere Daten enthalten.

    Dann würde ich eine Abfrage in folgender Art definieren

    
    SELECT value 
    
    FROM properties
    
    WHERE value BETWEEN "04.07.2005" AND "16.10.2005"
    
    OR value BETWEEN "04/07/2005" AND "16/07/2005"
    
    OR value BETWEEN "2005.07.04" AND "2005.10.16";
    
    

    Dankeschön. Zunächst funktioniert das so.

    Allerdings scheint das BETWEEN nicht alle betreffenden Datensätze zu liefern.

    OK, mal ein Beispiel - In der Datenbank stehen die folgenden Datumsangaben (mit dem Typ Textfeld):

    08/08/2005

    08/08/2005

    12/08/2005

    27/09/2005

    27/09/2005

    01/09/2005

    19/09/2005

    19/09/2005

    19/09/2005

    27/09/2005

    01/10/2005

    04/10/2005

    Wenn ich nun die folgende Abfrage mache:

    SELECT value FROM properties WHERE value BETWEEN "08/08/2005" AND "04/10/2005"

    Dann ist die Ausgabe lediglich:

    04/10/2005

    08/08/2005

    08/08/2005

    04/10/2005

    08/08/2005

    08/08/2005

    Woran könnte das liegen?

    Danke!!

  16. Hallo,

    folgendes Problem:

    Ich möchte möglichst effizient das Vorkommen, also die Häufigkeit gleicher Werte in einer sehr grossen Datei (ca. 500 MB) bestimmen. Die Datei einzählt ca. 2 Millionen gleiche einfache Zahlen bie einer Gesamtzahl von ca. 50 Millionen Zahlen.

    Die Datei ist dabei so aufgebaut:

    .....

    865531667

    396993597

    601196596

    6289283

    206531325

    556596040

    920326407

    .....

    Die Zahlen haben also eine unterschiedliche Länge.

    Wenn zwei Zahlen gleich sind, so erfolgt eine Ausgabe in der Form

    .....

    865531667 = 2

    .....

    Wenn drei Zahlen gleich sind, dementsprechend:

    .....

    865531667 = 3

    .....

    Das komplizierte an der Sache ist, dass der Heap-Space nur einen bestimmten Speicherplatz einnehmen darf (in diesem Fall maximal 50 MB, also "-Xmx50m").

    Was ist am sinnvollsten? Da es 2 Millionen gleiche Zahlen sind, muss also nur gezaehlt werden welche Zahl wie oft vorkommt. Welche Datenstruktur kann man dafuer am Besten nehmen?? Wie baut man das am Besten auf?

    Ich habe schonmal ein wenig ausprobiert, leider war es mir nicht moeglich eine Implementierung zu finden, die mit einem so geringen Heap Space arbeitet, aber hier trotzdem meine Lösung:

    
     public void haeufigkeit() throws Exception 
    
        {  
    
        	FileReader fr = new FileReader("datei");
    
    	BufferedReader bf = new BufferedReader(fr);
    
    
        	try 
    
        	{
    
        		String zeile; 
    
    
        		// heap muss auf 50 mb gesetzt werden ("java.exe -Xmx50m")
    
    
        		HashMap zahlen = new HashMap(); 
    
    
        		while ( (zeile=bf.readLine()) != null) {
    
        			Anzahl anzahl = (Anzahl) zahlen.get(zeile);
    
    
        			if (anzahl == null) {
    
        				anzahl = new Anzahl();
    
        				zahlen.put(zeile,anzahl);
    
        			}
    
        			((Anzahl)zahlen.get(zeile)).zaehler++;
    
        			System.out.println(zeile + ", " + ((Anzahl)zahlen.get(zeile)).zaehler);
    
        		}
    
    
        		System.out.println("File-Evaluation done");
    
    
        	} 
    
        	catch(Exception e) 
    
        	{ 
    
        		System.err.println(e.getMessage()); 
    
        	} 
    
        	finally 
    
        	{ 
    
        		if(bf!=null) try { bf.close(); } catch(Exception e) {}
    
        	}
    
     

    Dieser Code kommt mit dem Heap nicht klar, es kommt eine Outofmemory-Exception? Was kann man machen? Danke.

  17. hallo forum,

    folgendes problem:

    ich lese felder aus einer datenbank aus und schreibe in eine combobox:

    
    			while (myReader.Read())
    
    			{
    
    				int course_id = myReader.GetInt32(0);
    
    				string course_name = myReader.GetString(1);
    
    				string course_description = myReader.GetString(2);
    
    
    				tmp = new course(course_id, course_name, course_description);
    
    
    				c_combobox.Items.Add(course_name);
    
    				c_combobox.Items[c_combobox.Items.Count-1] = tmp.course_name;
    
    
    			}
    
    
    die combobox zeigt jetzt die course_namen an. nun möchte ich, sobald eine auswahl getroffen wird, ein textfeld neben der combobox mit der course_description füllen. wie funktioniert das in der folgenden methode:
    
    	private void c_combobox_SelectedIndexChanged(object sender, System.EventArgs e)
    
    		{
    
                      // ???
    
    
    }
    ich hab schon einiges versucht, habe aber immer probleme mit dem casten ... ich habe es so probiert:
    
    		private void c_combobox_SelectedIndexChanged(object sender, System.EventArgs e)
    
    		{
    
    			course tmp = (course) c_combobox.SelectedItem;
    
    			c_description.Text = tmp.course_description;
    
    
    		}
    
    

    und mit vielen anderen methoden ... ich bekomm das nicht hin ....

    wer kann helfen??

    danke!!

  18. Hi,

    Obs elegenter ist lass ich mal dahingestellt. Mit C# hast du alles aus einem Guss. Das .Net SDK ist übrigens auch kostenlos, und mit SharpDevelopment existiert sogar eine frei verfügbarer IDE.

    Aha, interessant. Ist eine Datenbankanbindung denn ueber die MySQL API oder andere Methoden (Welche?) denn problemlos machbar mit .NET bzw. C#?

  19. Hallo,

    das kommt doch immer auf die Anforderungen an. Soll es (möglichst) plattformunabhängig sein? Kennt ihr euch mit wxWindows aus? Was meinst du mit API? Welche API?

    Vielleicht ist ja, wenn es eh nur unter Windows laufen soll, C# interessant. Damit hast du es zumindest einfach, eine GUI zu erstellen.

    die eigenstaendige applikation soll eig. nur unter windows XP laufen. aber das heisst ja nicht, dass man gleich mit VC.NET arbeiten muss. die zusammenstellung Dev-CPP + WXWindows ist meines erachtens eleganter und zudem kostenlos!! hier bleibt die moeglichkeit offen es spaeter fuer linux zu portieren etc., aber grundlegend laesst sich damit schliesslich auch fuer windows entwickeln, so sehe ich das zumindest. aber ich habe kaum erfahrung mit WXWindows, deswegen frage ich. So wie es aussieht ist es aber auch sehr einfach eine GUI mit WXWindows zu erstellen.

    Mit Api ist MySQL++ gemeint.

    Was meint Ihr? Was spricht dafuer, was dagegen?

    Ich moechte moeglichst die richtige Entscheidung fuer die IDE, das Datenbankinterface und die GUI am Anfang treffen :)

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...