Zum Inhalt springen

Shadowman

Mitglieder
  • Gesamte Inhalte

    474
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Shadowman

  1. sorry, diese Zeile habe ich leider vergessen zu kopieren: DbDataReader data = null; ich möchte den Reader eben per while durchlaufen, jedoch jede Zeile einzeln ansprechen können. Aus diesem Grund sieht der Methodenaufruf so aus: while (data = db.fetch()) { permission t_permission; t_permission.group = "user"; t_permission.name = data["name"].ToString(); t_permission.value = data["value"].ToString(); this.permissions.Add(t_permission); } Zur Klasse: OdbcDataReader reader; Die Methode fetch sieht so aus: public DbDataReader fetch() { if (!error.f()) { if (this.reader.Read()) return reader; else return null; else return null; } error.f() gibt nur zurück, ob vorher ein Fehler aufgetreten ist (in diesem Fall false).
  2. Hallo zusammen, ich habe mir eine Klasse gebaut, mit der ich auf eine Datenbank zugreife. In der Klasse gibt es folgende Methoden: public void prepare(string query) public void addParam(string key, string val) public void execute() public bool fetch(ref DbDataReader ret) public DbDataReader fetch() public void close() für einzelne Rückgaben verwende ich die fetch Methode, welche einen bool wert liefert, bei mehreren Ergebnissen möchte ich die Methode jedoch so ansprechen können (die erste Methode wird danach gelöscht, da ich es dann wie unten bloß ohne das while machen kann): while (data = db.fetch()) { // mach etwas } Hier bekomme ich jedoch einen compiler Fehler: Eine implizite Konvertierung vom Typ "System.Data.Common.DbDataReader" in "bool" ist nicht möglich. Hat jemand einen Tip für mich, wie ich die Funktion fetch aufbauen muss, damit eine solche Verwendung möglich ist? Ich stehe da total aufm Schlauch. Danke schonmal! Mfg Shadowman
  3. Du musst die Zeichen escapen! $ = \$ " = \" ' = \' (dies ist aber nicht zwangsweise notwendig) Du hast momentan dort eine Unterbrechung drin, weil du das "is" und das $ nicht escaped hast.
  4. Hallo zusammen, ich habe folgendes Problem: Ich habe eine Klasse, mit der ich auf eine Oracle Datenbank zugreife. Nach dem Durchführen des Statements liefere ich das ergebnis als ADODB.Recordset zurück um das Ergebnis weiter zu verarbeiten. Jetzt habe ich aber das Problem, dass ich manche Ergebnisse dauerhaft benötige und nicht immer wieder neu laden möchte. Nachdem ich ein Query ausgeführt habe, möchte ich die Datenbankverbindung aber beenden, weswegen ich connection.close ausführe. Nachdem ich das gemacht habe ist jedoch mein Recordset Objekt wieder leer. Ich habe schon versucht per rs.Clone, oder neuanlegen eines eigenen Recordsets und manuellem übertragen der Daten ein neues Recordset anzulegen, aber das klappt alles nicht. Im grunde vermute ich, dass bei der Rückgabe nur eine Referenz auf das Objekt übertragen wird, weswegen das beenden der Verbindung dann auch mein zurückgegebenes Objekt betrifft (darum auch der Versuch mit clone) Hat jemand eine Idee, wie ich weiterhin beim Recordset bleiben kann und trotzdem nach terminierung der Datenbankverbindung weiterhin an die jeweiligen Ergebnisse komme? Mfg Shadowman
  5. Natürlich eines fremden Prozesses, der aber vom selben Benutzer gestartet wurde. Einzig das Durchsuchen des Arbeitsspeichers läuft sehr schleppend, da ich jeden Wert einzeln durchlaufe. Vielleicht muss ich das noch etwas optimieren, dass größere Sprünge beim durchlaufen gemacht werden. Ausserdem wäre es eine Hilfe den Anfang und das Ende des Speichers zu kennen, der dem Programm zugewiesen wurde. Leider konnte ich dazu bisher nichts finden, ausser die Größe des Speichers, der durch den Prozess belegt wird.
  6. Danke für diese Info. Ich habe es jetzt soweit, dass ich im Speicher nach einem Wert suchen kann und diesen sogar überschreiben könnte!
  7. Ich möchte unter C#.Net den Arbeitsspeicher, der einem Prozess zugeordnet ist nach einem bestimmten String durchsuchen. Der String besteht aus einer 10-stelligen Zahl, welche ich jedoch im String Format angebe. Dazu habe ich die Variable "processid" mit dem Prozess gespeichert. private bool searchInMemory() { IntPtr p = OpenProcess(0x10 | 0x20, true, this.processid); uint PTR = 0x00000000; byte[] buff = new byte[40]; String original = readConfig("original"); while (PTR != 0xFF000000) { ReadProcessMemory(p, (UIntPtr)PTR, buff, (UIntPtr)40, IntPtr.Zero); this.lblStatusValue.Text = Convert.ToString(buff); if(BitConverter.ToString(buff) == original) { return true; } PTR += 0x1; } return false; } Leider hängt sich das Programm auf und allgemein weiß ich auch nicht, ob alles so funktioniert, wie ich mir das vorstelle. Die Beschreibungen im Netz, wie sowas gehen soll sind leider auch nicht gerade verständlich geschrieben. Ich glaube es wäre ein Anfang, wenn ich den zugewiesenen Speicherbereich der Anwendung auslesen könnte und somit die suche schonmal eingrenzen könnte. Kann mir vielleicht jemand sagen was ich falsch mache und ggf. auch Verbesserungsvorschläge, bzw. Tipps geben? Gruß Shadowman
  8. Vielen dank für diese Information. Ich wollte die Daten möglichst nicht geschachtelt auslesen, daher wollte ich nachfragen ob sowas direkt via SQL geht. Dann geht's ans überlegen, wie ich die Daten möglichst performant im Programm merge
  9. Ich weiß leider nicht, wo ich das am besten posten soll, falls ich hier falsch bin, bitte ich um verschrieben. Ich habe das Problem, dass ich in einer Tabelle gruppieren muss, jedoch trotzdem alle Unterelemente zugänglich machen muss. Die Tabelle sieht vereinfacht so aus: [table=width: 300, class: grid] [tr] [td]ID[/td] [td]Time[/td] [td]Name[/td] [/tr] [tr] [td]1[/td] [td]1377166344[/td] [td]Name1[/td] [/tr] [tr] [td]2[/td] [td]1377166344[/td] [td]Name2[/td] [/tr] [tr] [td]3[/td] [td]1377166314[/td] [td]Name3[/td] [/tr] [/table] Ich muss alle Einträge der Zeit nach Gruppieren, muss aber weiterhin auf alle Namen und ID's zugreifen können. Sprich es müsste in etwa so aussehen: [table=width: 300, class: grid] [tr] [td]Time[/td] [td][/td] [/tr] [tr] [td]1377166344[/td] [td] [table=width: 200, class: grid] [TR] [td]1[/td] [td]Name1[/td] [/TR] [TR] [td]2[/td] [td]Name2[/td] [/TR] [/table] [/td] [/tr] [tr] [td]1377166314[/td] [td] [table=width: 200, class: grid] [TR] [td]3[/td] [td]Name3[/td] [/TR] [/table] [/td] [/tr] [/table] weiß jemand, wie ich das anstellen könnte? (so in etwa zumindest, da ich bei der Tabelle keinen rowspan hinbekomme)
  10. Nein leider nicht, diese Seite hatte ich schon gefunden und mit mb_detect_encoding gesehen, dass meine Strings schon in UTF-8 codiert sind. Trotzdem vielen dank fürs raussuchen
  11. Es gibt wieder was neues: Nachdem ich <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> aus der Seite entfernt habe, werden alle Sonderzeichen korrekt angezeigt
  12. Ok, darauf habe ich nicht geachtet. Ich habe alle Dateien in UTF-8 konvertiert und nicht UTF-8 ohne BOM. Ich werde also nochmal alles konvertieren. Das Session Problem konnte dadurch schon gelöst werden, daher danke klotzkopp Nur leider bleibt das Problem mit den Sonderzeichen, die aus der Datenbank ausgelesen werden. Die Sonderzeichen werden weiterhin als � angezeigt
  13. Nachdem ich jetzt alles umgestellt habe funktionieren an den meisten Stellen Sonderzeichen und ich muss sie nicht mehr durch ä etc. ersetzen. Jedoch habe ich jetzt auf der Startseite folgende Meldung: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /test.php:1) in /test.php on line 4   Das sind die ersten 4 Zeilen der test.php: <?php include('classes/user.class.php'); session_start();[/PHP] Ich habe schon versucht das Include (was zwingend notwendig ist) testweise rauszunehmen, jedoch schafft dies keine abhilfe. Laut Quelltext besteht das Problem darin, dass 2 Leerzeichen gesendet werden, was aber in keiner Datei steht. Des Weiteren besteht immer noch das Problem, dass die Daten, die aus der Datenbank gelesen werden immer noch falsch Dargestellt werden. Ich hoffe, dass dieses Problem noch irgendwie gelöst werden kann. Ganz ehrlich, solche Probleme hatte ich bisher noch nie und es ist ziemlich nervig
  14. Ok, das hat funktioniert. In meinem Editor kann UTF-8 nicht dargestellt werden, weswegen anfangs immer merkwürdige Zeichen standen. Nachdem ich diese gelöscht hatte, war dann das Problem wieder da. Ich habe mir jetzt einen anderen Editor gezogen, welcher leider nur Shareware ist. Kennst du einen guten Freeware Editor mit Syntax Highlighting?
  15. Sorry für den Doppelpost, aber trotz Konvertierung gab es keine Besserung: Auszug aus dem dargestellten Quelltext: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <link rel="stylesheet" href="css/style.css" type="text/css" media="all" /> </head> <body> ? <table id="header">[/PHP] An der Stelle wo das "?" steht, steht in der Datei testweise ein "ö" So langsam verzweifle ich, was ich noch ändern könnte. Gruß Shadowman
  16. Auf der Seite habe ich die ganze Zeit schon das hier gehabt: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> In der Datenbank haben alle Tabellen die Kollation utf8_general_ci, sowie alle Text-Felder innerhalb der einzelnen Tabellen. Des Weiteren ist der MySQL-Zeichensatz: (utf8). Also kann es jetzt nur noch daran liegen, dass die PHP Dateien wahrscheinlich nicht in UTF-8 gespeichert sind, richtig?
  17. Zuerst mal sorry, falls es diese Frage schon öfter gab, aber ich habe bei der Suche wohl nicht die richtigen Suchwörter erwischt. Ich habe das Problem, dass ich in meiner Datenbank in ein Feld vom Typ utf8_general_ci einen Text mit Sonderzeichen speichern möchte (Beispielsweise "Köln"). In der Datenbank habe ich jetzt diesen Text so eingestellt, dass dort das ö steht, jedoch bekomme ich bei der Ausgabe nur einen viereckigen Kasten angezeigt. Beim einschreiben per Web-Formular werden anstatt einem ö auch nur 2 merkwürdige Zeichen eingespeichert. Ich bin jetzt soweit gekommen, dass es irgendwas mit den Datentypen auf sich hat, aber leider hatte ich solche Probleme bisher noch nie, daher bin ich ziemlich Ratlos. Falls jemand zur Lösung des Problems noch Informationen benötigt, schreibt einfach, was ihr braucht. Falls der Datentyp der PHP Dateien benötigt wird, bräuchte ich zusätzlich eine kleine Hilfestellung, wo ich den auslesen kann. Gruß Shadowman
  18. Ich habe folgende Ausgangssituation: db.php -> enthält die Datenbankverbindung und $mysqli template.class.php -> enthält den unten stehenden Quellcode test.php ->included beide oberen Dateien global $mysqli; $qry = "SELECT name, content FROM `language_variables` WHERE `language` = ? AND `module` = ? AND `template` = '".$this->template."'"; $stmt = $mysqli->prepare($qry); $stmt->bind_param("ii", $this->language, $this->module); $stmt->execute(); echo $stmt->num_rows(); while($stmt->fetch()) { $stmt->bind_result($name, $content); $this->language_variables[$name] = $content; } $stmt->close; foreach($this->language_variables as $var => $val) { $this->content = str_replace("[".$var."]",$val,$this->content); }[/PHP] Zusätzlich sieht die entsprechende Tabelle so aus: [table=width: 500, class: outer_border] [tr] [td]language[/td] [td]module[/td] [td]template[/td] [td]name[/td] [td]content[/td] [/tr] [tr] [td]1[/td] [td]0[/td] [td]index[/td] [td]sprache[/td] [td]testvariable[/td] [/tr] [/table] Ich habe mir beim Aufruf der Template die entsprechenden Werte ausgeben lassen: Module: 0 Language: 1 Template: index Jetzt zu meinem Problem: Beim Auslesen aus der Tabelle, wird nichts gefunden. Ich habe auch schon das Statement kopiert und in phpMyAdmin eingefügt, wo ich Ergebnisse erhalten habe. Hat jemand eine Idee, woran es liegen könnte? Den Templatenamen setze ich übrigens ausserhalb des prepare, da man im prepare anscheinend keine Anführungszeichen verwenden kann und beispielsweise das Wort "index" ein reserviertes Wort ist, wenn es nicht in Anführungszeichen steht. Ich hoffe, dass mir jemand helfen kann. MfG Shadowman
  19. Zum jetzigen Zeitpunkt kann ich nur danke sagen. Ich habe schon lange nicht mehr mit Sockets gearbeitet und das ist ne nette Auffrischung Connect und Auth sind soweit Fertig. Vorbereitung für CC/BCC ist drin, Attachments habe ich bisher noch nicht angeschaut.
  20. Ich bin für alles offen. Werde mich da gleich dran setzen^^
  21. Meine Festplatte mit allen von mir Programmierten Projekten wurde dabei gelöscht. Da ich Programmcode als Referenzen angeben kann, jedoch keine Ideen für kleine Projekte habe, frage ich einfach mal hier nach Ideen für kleine Projekte. Die Komplexität spielt erstmal keine Rolle. Bevorzugte Sprachen sind PHP/JavaScript
  22. Also ich hatte ne ganze Reihe WD's damals. Die hatten so ne Serie 80 GB Platten, die mir alle nach und nach immer wieder abgeraucht sind. Systemplatte ist bei mir zum Glück Seagate, mit denen ich auch noch nie so große Probleme hatte. Die 300 GB Platte die vorher abgeschissen ist, war allerdings ne Seagate. Das einzige was ich jetzt Positiv an den Hitachis fand war, dass sie komische Geräusche gemacht haben BEVOR sie ganz den Geist aufgegeben haben. Die Seagate hat mit den Geräuschen erst angefangen, als es schon vollkommen zu spät war. Also im Bezug auf die Möglichkeit der Datenrettung: Pro Hitachi! Im Bezug auf die Langlebigkeit: Pro Seagate! Bei meinem Computerbetrieb (24/7) hab ich aber eigentlich immer nur auf Seagate vertraut. Naja, die neue Seagate scheint auf jeden fall zu laufen und ich habe schonmal eine SATA III Platte
  23. Sorry für den Doppelpost, aber die eine Hitachi hat sich beim Low Level Format wohl abgeschaltet und mag jetzt auch nicht mehr wirklich längerfristig hochfahren. :pssst: Hitachi!!! Mit WD hatte ich auch schonmal ähnliche Probleme. Nichtmal 200 Stunden gelaufen und schon abgeraucht... Ich werde wohl die Tage lieber 2 neue Seagates (Seagate ST31000524AS) holen, oder haben die Herren der Schöpfung (aka wuwu) auch an Seagate was zu meckern?
  24. Sorry, dass ich erst jetzt schreibe. Mit den 6 Partitionen meinte ich die beiden Festplatten zusammen. Somit 3 pro Festplatte. Dass nach 3 primären Partitionen nur noch eine erweiterte Partition erstellt werden kann war mir auch schon aufgefallen. Da die Festplatten nicht ganz neu waren, werde ich mal en low level format versuchen. Vielleicht ist da was durch die vorherige Verwendung nicht ganz richtig

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