000
26.10.2003, 17:40 Uhr
mike
Pinguinhüpfer (Operator)
|
Hi! Ich hab heute versucht ein BLOB per C/C++ einzufügen
C++: |
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 bekomm keine Fehler - aber er füllt mir das blob auch nicht Das orgianale ist hier: www.postgresql.org/docs/7.3/interactive/lo-libpq.html
Weiß jemand zufällig was ich da flsch mache? Danke im Voraus! mfg --
|