Writing Large Objects to Postgresql via ODBC using VB - Mailing list pgsql-odbc

From Matthew Dormer
Subject Writing Large Objects to Postgresql via ODBC using VB
Date
Msg-id 5.0.2.1.2.20010502162018.00a649c0@mail.infosource.com.au
Whole thread Raw
Responses RE: Writing Large Objects to Postgresql via ODBC using VB
List pgsql-odbc
I am having problems writing to a postgres database using ODBC.  Here are
the steps I have taken:

1.  I have greated a lo type in the database

create type lo (
internallength=4, externallength=10,
input=int4in, output=int4out,
default='', passedbyvalue
);


2.  I create a table in the database

Create table matt ( matt_id integer not null unique primary key, matt_text
lo );

3.  I have a simple form with 1 rich text box, RichTextBox1 and a command
button Command 1  Here is the code on the form:


Private Sub Command1_Click()

     Dim query As rdoQuery
     Dim rst As rdoResultset

     Set query = cn.CreateQuery("Add_Pic", "select * from matt;")
     Set rst = query.OpenResultset(1, 3)

     rst.AddNew
     Save_RichText RichTextBox1, rst![matt_pic]
     rst.Update

End Sub


Public Function Save_RichText(TextBox1 As RichTextBox, WhatField As rdoColumn)

     Dim DataFile As Integer ' Free File Number fo Reading
     Dim Fl As Long ' Length of the File
     Dim Chunks As Integer ' The Number of Chunks
     Dim Fragment As Integer ' The Size of the Remainder
     Dim Chunk() As Byte ' To hold each Chunk
     Dim I As Integer ' Variable for For Loop

     Const FileName = "c:\tmpsavetext.rtf"
     Const ChunkSize As Integer = 1024

     TextBox1.SaveFile FileName, rtfRTF
     DataFile = FreeFile

     Open FileName For Binary Access Read As DataFile
     Fl = LOF(DataFile)    ' Length of data in file
     If Fl = 0 Then Close DataFile: Exit Function
     Chunks = Fl \ ChunkSize
     Fragment = Fl Mod ChunkSize

     'Put Null into Field
     WhatField.AppendChunk Null

     'Get the Fragment
     ReDim Chunk(Fragment)
     Get DataFile, , Chunk()
     WhatField.AppendChunk Chunk()

     'Get the Chunks
     ReDim Chunk(ChunkSize)
     For I = 1 To Chunks
         Get DataFile, , Chunk()
         WhatField.AppendChunk Chunk()
     Next I

     Close DataFile
     Kill FileName

End Function


What is wrong with the above.  when I run it i get the error:

S1C00: Only SQL_POSITION/REFRESH is supported for SQLSetPos

I am running postgresql 6.5.3, PostgreSQL ODBC Driver v 6.50.0000 and am
using vb 6.0 Enterprise. The postgresql was installed from a rpm and is
running on RedHat 6.2

Any help would be greatly Appreciated.

Matt Dormer


pgsql-odbc by date:

Previous
From: Hiroshi Inoue
Date:
Subject: Re: ODBC changes
Next
From: "Ing. Ivo Schwarzer"
Date:
Subject: Max size of a TEXT field