libpq(Win32) & BLOBs -> lo_write
От | Michael Vodep |
---|---|
Тема | libpq(Win32) & BLOBs -> lo_write |
Дата | |
Msg-id | 30627.1067186707@www61.gmx.net обсуждение исходный текст |
Список | 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! +++
В списке pgsql-interfaces по дате отправления: