Announcement

Collapse
No announcement yet.

wie Binärwerte > 64Bit speichern und auslesen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • wie Binärwerte > 64Bit speichern und auslesen?

    Hallo mal wieder

    habe heute vielleicht mal eine bißchen ausgefallenere Frage,
    hat nur bedingt etwas mit SQL zu tun.
    Ich arbeite ein einigen Punkten gerne mit Binärwerten und Masken
    aber der größte INT Wert den es bei SQL gibt ist nun mal nur die BIGINT mit 64Bit
    jetzt dachte ich kann mir längere Werte vielleicht irgend wie mit dem STRING -> BINARY Typ zusammenbasteln,
    aber wirklich binäre Werte bekommt man beim Auslesen nicht
    Wenn das überhaupt geht müßte ich das gewünscht Byte erst in ein Binary-String konvertieren
    dieses dann in eine INT und das dann untersuchen,
    wollte ich das dann auch noch ändern müßte ich den Vorgang wieder umkehren
    und wüßte nicht mal wie SQL (oder auch PHP) beim Zurückschreiben auf schräge (ASCII untypische)
    Binärwerte oder gar Steuerzeichen Reagiert?
    Gibt es irgendwelche Möglichkeiten binäre Text-Strings gleich binär zu erhalten
    und umgekehrt binär auch wieder zurückzuschreiben
    sodass ich z.B. für ein a einfach eine (int)97 schreiben kann ?
    ...oder hat jemand einen völlig anderen Ansatz?
    Wäre auch für alle andere Inspiration (sofern) sie nicht am Thema vorbei geht
    echt dankbar

    Danke & Lieber Gruß
    Zen

  • #2
    http://docs.oracle.com/javase/1.4.2/...igInteger.html

    http://openbook.galileocomputing.de/...f8804338268382

    Sehe allerdings keinen Sinn darin, soetwas mit SQL zu machen
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Sehe allerdings keinen Sinn darin, soetwas mit SQL zu machen
      Hi Christian,

      vorab besten Dank für deine Vorschläge und ich glaube, ich habe eine Ahnung ob deines Unverständnisses
      Ich versuche es mal zu erklären
      Inklusive der eigentlichen Datenbank schreibe ich auch ein Webinterface zur Pflege dieser Datenbank
      und ich habe mich halt dazu entschlossen, neben den Tabellen die, die eigentlichen Daten enthalten
      auch die Konfiguration der GUI zu den einzelnen Tabellen in eine eigene (sehr kurze) Tabelle zu schreiben.
      So gibt es zu jeder Datentabelle auch eine Konfigurationstabelle und für jedes interaktive Element (der GUI)
      auch noch eine Optionsliste (auch eine Tabelle).

      Praktisches Beispiel:

      In der Datentabelle gibt es eine Spalte „Hersteller“
      für die Hersteller gibt es dann auch eine eigene Tabelle
      und in meiner Konfigurationstabelle steht u.a. mit welchem Javascript-Object
      ein Hersteller zu wählen ist und

      -> vor allem was mein aktuelles Problem betrifft, eine binäre Maske,
      die entscheidet welche Optionen das Dropdownfeld enthalten soll.
      also, die Liste der Hersteller kann lange sein, aber es wird nur eine Auswahl
      der gesamten Liste zugelassen.

      noch praktischeres Beispiel:

      ich habe eine Tabelle, für die Liste aller PC-Grafikkarten, diese Tabelle enthält natürlich auch
      eine Spalte „Hersteller“
      In der Tabelle „Hersteller“ stehen alle Hersteller die PC Komponenten produzieren
      und meine binäre Maske gibt meiner Web-GUI die Auskunft welche Hersteller alles Grafikkarten herstellen
      und zeigt nur diese in der Optionsliste des Dropdown an.
      Das funktioniert auch alles soweit, nur gibt es halt deutlich mehr als 64 Hersteller
      und da komme ich jetzt mit BIGINT an meine Grenzen.

      Noch mal zum grundsätzlichen Verständnis, die binären Masken kommen nur in der Konfigurationstabelle vor
      die selten mehr als 20 Einträge hat, also durchaus überschaubar ist.

      So wie ich dein Vorschlag der BIGINT class verstehe ist es eine Klasse mit Methoden
      die den Inhalt einer BIGINT verschieden interpretiert und verwendet, diese Quasi
      nur als typenlosen Datenspeicher nutzt. Sollte ich das richtig verstanden haben
      hilft es mir leider nicht weiter, denn ich möchte mit dem Inhalt immer das gleiche machen,
      (die Funktion existiert auch schon) jedoch sollte der Typenlose Datenspeicher eine
      beliebige Länge haben dürfen.

      Gib bitte bescheid, wenn ich an der Klasse etwas falsch verstanden habe

      Gruß
      Zen

      Comment


      • #4
        Die Zeiten, in denen man Bitfelder zur Speicherung von Einstellungen und Zuständen genutzt hat, sind
        eigentlich vorbei. Bestes Beispiel sind deine aufgezeigten Probleme. Des Weiteren war der Hinweis
        auf die Klasse dahingehend zu verstehen, dass es Sprachen gibt, in denen der Umgang damit problemlos
        moeglich ist. Du wollest weitere Anregungen. Es ist wohl weiterhin nur moeglich, in der DB das als String
        abzulegen. Der Umgang mit Bitfelder gehoert m.E. nicht in die DB.
        Christian

        Comment


        • #5
          Gerade in Zeiten von fast unbegrenztem Speicher würde ich auch eher von Bitfeldern abraten. Bitfelder hat man benutzt um auf extrem resourcenknappen Rechnern/Controllern den Speicher besser ausnützen zu können. Heutzutage halt ich das allerdings für nicht mehr zeitgemäß, ausser es ist wirklich eine Anforderung an die Software auf so minimalen System zu laufen. Allerdings würde man dort zur Datenhaltung wohl auch kein RDBMS verwenden, sondern andere Wege.
          Dazu halte ich das auch für die Verständlichkeit der Anwendung nicht für sonderlich vorteilhaft. Wer ausser Dir (und Du in 3 Jahren auch nicht mehr) weiss welches Bit da was bewirkt ohne sich mühsam durch den Code friemeln zu müssen.

          Comment


          • #6
            Hallo,
            Originally posted by fanderlf View Post
            ...Dazu halte ich das auch für die Verständlichkeit der Anwendung nicht für sonderlich vorteilhaft. Wer ausser Dir (und Du in 3 Jahren auch nicht mehr) weiss welches Bit da was bewirkt ohne sich mühsam durch den Code friemeln zu müssen.
            Mal abgesehen von den Problemen, die Auftreten wenn neue Hersteller dazu kommen oder welche wegfallen. GGfs. müsen dann alle Bitmasken geändert werden. Einfacher handhabbar halte ich für deine angesprochenen Einsatzfälle ein echtes relationales Schema.

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment

            Working...
            X