Re: Reading Binary Data from SQL Request
- To: mathgroup at smc.vnet.net
- Subject: [mg110391] Re: Reading Binary Data from SQL Request
- From: Stephan Schiffels <stephan80 at mac.com>
- Date: Wed, 16 Jun 2010 05:39:24 -0400 (EDT)
Well, exactly, but there isn't! The binary data looks something like SQLBinary[{12,14,25,123,144,0,0,12,0,0,12,14,34}], i.e. it is just a sequence of bytes, arranged in a list. I coudn't find a way of reading from this byte-array like a stream. As I said, I can write this data to disk, using BinaryWrite... but reading from it like a stream is not possible. If anyone knows how to use the BinaryRead function with such data, I'd really appreciate it. Stephan Am 15.06.2010 um 20:00 schrieb Christopher Arthur: > There should be a database method for this...also, if not, then a channel/stream doesn't have to be a file on disk, so you could still use binaryWrite like a pipe > > Stephan Schiffels a =E9crit : >> Dear group, >> >> I use DatabaseLink to retrieve binary data from a database. >> So lets say, I retrieve the data as: >> >> Needs["DatabaseLink`"]; >> conn == OpenSQLConnection["myDB"]; >> data == SQLSelect[conn, "myTable", "myBinaryField"]; >> >> Then the type of data[[1,1]] is an SQLBinary-Object, containing a list of bytes, accessible as the first item of the SQLBinary-Wrapper: data[[1,1.1]] >> >> I need to read this binary data as a sequence of double precision floating point numbers, similar to the following command: >> >> BinaryRead[stream, "Real64"], where "stream" is a file on the harddisk. >> >> I have not figured out how to do this with binary data that is already in memory, rather then in a file. All I can find in the documentation is concerned with File I/O. >> >> What I can do is to use a temporary file: >> >> BinaryWrite["tmp", data[[1,1,1]]]; >> Close["tmp"]; >> num == BinaryRead["tmp", "Real64"]; >> >> But there clearly should be a way to avoid the creation of binary files here... >> >> I appreciate any help. >> >> Thanks, >> >> Stephan >> >> >> >> >