Re: Reading Binary Data from SQL Request
- To: mathgroup at smc.vnet.net
- Subject: [mg110412] Re: Reading Binary Data from SQL Request
- From: Stephan Schiffels <stephan80 at mac.com>
- Date: Wed, 16 Jun 2010 05:48:37 -0400 (EDT)
- References: <E9BE6A0FB1C64EC4ADDA18FE05A233B2@underdog>
Thank you for you help. I have found a way around this problem, which goes along the line of the solution below, but circumvents the Stream: myRealDataString = FromCharacterCode[data[[1,1,1]]]; reals = ImportString[myRealDataString, "Real64"]; This works. I might even switch my database-column format to pure Text, then I don't even have to use FromCharacterCode. Anyway, I guess the problem is solved, Stephan Am 16.06.2010 um 10:21 schrieb Hans Michel: > Try > > myRealDataString = FromCharacterCode[ data[[1, 1, 1]] ]; > > myRealDataStream = StringToStream[myRealDataString]; > > num = BinaryRead[myRealDataStream , "Real64"]; > > Not sure of above step as I don't have a db with bunary data that can be > > read as 64-bit IEEE double-precision numbers. > > Close[myRealDataStream] > > Hans > > "Stephan Schiffels" <stephan80 at mac.com> wrote in message > news:hv76ig$k0q$1 at smc.vnet.net... >> 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 >> >> > >