libpq(Win32) & BLOBs -> lo_write

From: "Michael Vodep" <mvodep(at)gmx(dot)net>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: libpq(Win32) & BLOBs -> lo_write
Date: 2003-10-26 16:45:07
Message-ID: 30627.1067186707@www61.gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Hi!
I used following tuturial for inserting a BLOB.
http://www.postgresql.org/docs/7.3/interactive/lo-libpq.html
Now i tried to use the same in MFC
void CWordChildFrame::OnSaveRtf()
{
//BINARY LARGE OBJECT
PQexec(conn,"BEGIN");
Oid lobjId;
lobjId = importFile(conn,"C:\\myfile.rtf");
PGresult* res;
CString str;
str.Format("INSERT INTO tbldata (data) VALUES(%i) WHERE
blobid=0;",lobjId);
res = PQexec(conn,str);
PQexec(conn,"END");
}

Oid CWordChildFrame::importFile(PGconn *conn, char *filename)
{
Oid lobjId;
int lobj_fd;
char buf[BUFSIZE];
DWORD dwRead;
int nbytes,tmp;
int fd;
CFile cfile;

CFileException ex;
if(!cfile.Open(filename, CFile::modeRead, &ex)) {
TCHAR szError[1024];
ex.GetErrorMessage(szError, 1024);
}
else {
lobjId = lo_creat(conn, INV_READ | INV_WRITE);
if (lobjId == 0){
AfxMessageBox("BLOB kann nicht erstellt werden\n");
}
lobj_fd = lo_open(conn, lobjId, INV_WRITE);

do
{
dwRead = cfile.Read(buf, BUFSIZE);
tmp = lo_write(conn, lobj_fd, buf, nbytes);
if (tmp < nbytes)
AfxMessageBox("Lesefehler\n");

}
while(dwRead > 0);

(void)lo_close(conn, lobj_fd);

return lobjId;
}
}

I ahve got no errors - but nothing happens in the DB
What have i done wrong?
Thanks Michael

--
NEU FÜR ALLE - GMX MediaCenter - für Fotos, Musik, Dateien...
Fotoalbum, File Sharing, MMS, Multimedia-Gruß, GMX FotoService

Jetzt kostenlos anmelden unter http://www.gmx.net

+++ GMX - die erste Adresse für Mail, Message, More! +++

Browse pgsql-interfaces by date

  From Date Subject
Next Message creid 2003-10-26 23:08:49 LIBPQ Question
Previous Message Michael Meskes 2003-10-26 09:51:07 Re: [BUGS] ECPG and NULL indicators