[Gambas-user] Q:how to save a file.png into Postgresql
richard terry
rterry at ...1946...
Mon Sep 1 01:29:49 CEST 2008
Hi Rof, thanks for taking the time to reply.
Dies at the line containing 'Coct' with message: unknown identifier
but I'm sure this way is good, as I can remember reading something about this
in the postgres doc's but couldn't figure out how to do the substitution.
Next step?
thanks.
Richard
> On Sun, 31 Aug 2008 07:42:49 pm Rolf Schmidt wrote:
> Hi richard
>
> > Public sub Save_Image(ImagePath as string)
> >
> > Dim img As Image
> > Dim pictureData As String
> > Dim sql As String
> >
> > img = Image.Load(ImagePath) ' Save temp image as png file
> > tempFile = Temp() & ".png"
> > img.Save(tempFile)
> >
> >
> > pictureData = File.Load(tempFile) 'reload as a string
> >
> >
> > At this point the pictureData string seems to be ok.
> >
> > I Then tried writing to the database:
> >
> > sql = "insert into temp_image(piccie)"
> > "values($$"
> > sql = sql & pictureData & "$$)"
> >
> > and got back this message:
> >
> > Query failed:ERROR: invalid byte sequence for encoding "UTF8":0x89 HINT:
> > This error can also happen if the byte sequence does not match the
> > encoding expected by the server, which is controlled by
> > "client_encoding"
>
> Hope you defined your database field as byta for blob.
> Then you have to mask out a lot of byte codes in your picture data.
>
> I did it like this:
>
> PUBLIC SUB SavePic_Click()
> DIM hFile AS Stream
> DIM buffer AS Byte
> DIM picText AS String
>
> OPEN NameOfPic FOR INPUT AS #hFile
> WHILE NOT Eof(hFile)
> READ #hFile, buffer, lof(hFile)
> IF buffer < 32 OR buffer > 126 THEN
> picText = picText & "\\\\" & Coct(buffer)
> ELSE
> SELECT buffer
> CASE 92 ' mask "|" char
> picText = picText & "\\\\134"
> CASE 39 ' mask "'" char
> picText = picText & "\\'"
> DEFAULT
> picText = picText & Chr$(buffer)
> END SELECT
> END IF
> WEND
> CLOSE hFile
>
> query = "insert into table (picci) values ('" & picText & "')"
> ....
> END
>
> Hope that helps
> Fine regards
> Rolf
More information about the User
mailing list