aldeeer
Goto Top

MSSQL 2005 Binäresdatenfeld

Hallo,

also ich habe ein Probelm wo ich nicht weiss ob dieses zu Lösen ist.

Ich habe hier eine Datenbak mit dem MSSQL 2005. In dieser DB gibt es Felder welche den Datentyp binary haben.
Nun möchte ich diese Daten aber auslesen und weiter verarbeiten mit einem Perlskript.

Ich weiss aber nicht in welcher Art die Daten in die DB eingefügt werden.

Hat da jemden eine Idee was man machen könnte?

Viele Grüße und ein Danke

Aldeeer

Content-ID: 122946

Url: https://administrator.de/forum/mssql-2005-binaeresdatenfeld-122946.html

Ausgedruckt am: 22.12.2024 um 22:12 Uhr

MadMax
MadMax 18.08.2009 um 13:02:23 Uhr
Goto Top
Moin Aldeeer,

was verstehst Du unter "in welcher Art die Daten in die DB eingefügt werden"?

Die Daten werden da reingeschrieben, wie sie kommen. Wenn Du eine Excel-Datei reinschreibst und liest anschließend den kompletten Feldwert wieder aus und speicherst das Ausgelesene wieder als Datei, hast Du wieder eine Excel-Datei. Wenn es sich um einen Text handelt, liegt er in Ascii-Code vor.

War das die Antwort auf die Frage? Ansonsten präzisiere bitte.

Gruß, Mad Max
Aldeeer
Aldeeer 18.08.2009 um 13:48:12 Uhr
Goto Top
Ok ich versch es genauer zu beschreiben.

Ich habe eine Datenbank wo, wie schon gesagt, Felder als Datentyp binary gesetzt sind. Aber genau diese brauch ich für ein Skript, unter anderem handelt es sich auch um den Primary Key. Ich möchte nun aber erst mal genau wissen was da drinne steht, ich habe nur eine Vermutung.

Wie kann ich nun diese Daten umwandeln bzw mir in einem richtigen Format anzeigen lassen. Ich habe es schon mal im SQL mit den Befehl CONVERT versucht, war aber nicht erfolgreich.

Gruß Aldeeer
MadMax
MadMax 18.08.2009 um 16:59:31 Uhr
Goto Top
Definiere "richtiges Format". Convert ist prinzipiell schonmal kein schlechter Ansatz face-smile In einen Text bekommst Du es damit z.B. schonmal gewandelt.
Aldeeer
Aldeeer 19.08.2009 um 08:01:18 Uhr
Goto Top
Das richtige Format ist für mich das Ausgangsformat. Also war es ein Bild, möchte ich ein Bild, war es eine Datei, möchte ich eine Datei...etc.
Biber
Biber 19.08.2009 um 09:55:30 Uhr
Goto Top
Moin Aldeeer,

Zitat von @Aldeeer:
...Felder als Datentyp binary gesetzt sind. Aber genau diese brauch ich für ein Skript,
unter anderem handelt es sich auch um den Primary Key
- - -
Das richtige Format ist für mich das Ausgangsformat. Also war es ein Bild,
möchte ich ein Bild, war es eine Datei, möchte ich eine Datei...etc.
- - -
auslesen und weiter verarbeiten mit einem Perlskript.
- - -
mit den Befehl CONVERT versucht, war aber nicht erfolgreich.
Bist Du sicher, dass wirklich alle vier Aussagen zutreffen und Du uns alle nötigen Infos gegeben hast, um Dich bei einer sinnvollen Lösungssuche zu unterstützen?

Anders gefragt:
  • Was bedeutet "Weiterverarbeitung mit einem Perl-Skript"?
  • Was bedeutet "Bilder als Bilder" und "Dateien als Dateien"?
  • Was bedeutet "CONVERT klappt nicht"?

Okay, ob Du wirklich ein Bild als Primary Key hast, das frag ich jetzt lieber nicht...

Grüße
Biber
Aldeeer
Aldeeer 19.08.2009 um 10:50:37 Uhr
Goto Top
Nein kein Bild als Primary war ein doofes Beispiel und nur so schnell dahin gesagt.Sorry!

Also wir haben hier ein System von CA. Hinter diesem System liegt eine Datenbank, welche ich Abfragen möchte mit einem Perlskript. Dieses Perlskript soll dann PCs starten.

In der Tabelle die ich Abfragen muss sind nun die Datenfelder die ich brauch als binary gesetzt.

Problem:
Ich kann nun meine Abfrage nicht auf die Felder machen die ich benötige (binary). Ich suche nun eine Möglichkeit aber genau diese Felder abzufragen, also war mein Ansatz einfach die binary Daten umzuwandeln bzw lesbar zu machen. Dies habe ich mir dem SQL Befehl CONVERT gemacht, welche mir nicht viel bebracht hat.

Gruß Aldeeer
MadMax
MadMax 19.08.2009 um 12:55:46 Uhr
Goto Top
Ok, ich glaube, ich weiß jetzt, was Du willst face-smile

Dir bereitet nicht der auszulesende Wert Probleme, sondern der Wert, auf den Du prüfst wenn Du Deinen Befehl zusammenbastelst. Angenommen, Du suchst eine Bytefolge 18, 52, 86, 171, 205, 239, dann müßte Dein Befehl so aussehen:
select	x, y, z, ...
from	Tabelle
where	BinSpalte = 0x123456ABCDEF

weil: Dec 18 = Hex 12, Dec 52 = Hex 34, Dec 86 = Hex 56, Dec 171 = Hex AB, Dec 205 = Hex CD, Dec 239 = Hex EF

Löst das jetzt Dein Problem?

Gruß, Mad Max
Aldeeer
Aldeeer 27.08.2009 um 09:35:12 Uhr
Goto Top
Hallo,

tut mir leid das ich jetzt erst Antworte, aber ich war auf Urlaub face-smile.

Genau wie es Mad Max beschrieben hat war mein Problem. Danke!

Grüße Aldeeer