home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a007 / 1.ddi / BLPUT.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-15  |  1.5 KB  |  68 lines

  1. /* The SETUP.C program must be compiled and run before this example */
  2. /* can be executed. */
  3.  
  4. #include "pxengine.h"
  5. #include <stdio.h>
  6. #include <io.h>
  7. #include <fcntl.h>
  8. #ifndef __TURBOC__
  9.   #include <malloc.h>
  10.   #include <sys\types.h>
  11.   #include <errno.h>
  12. #else
  13.   #include <alloc.h>
  14. #endif
  15. #include <sys\stat.h>
  16.  
  17.  
  18. #define TABLENAME  "table"
  19.  
  20. TABLEHANDLE    tblHandle;
  21. RECORDHANDLE   recHandle;
  22. BLOBHANDLE     blbHandle;
  23.  
  24. int            input_file;
  25. long           file_length;
  26. unsigned       buffer_length;
  27. char           *buffer;
  28. PXCODE         pxErr;
  29.  
  30. int main(void)
  31. {
  32.   /* Read data to insert into BLOB. */
  33.  
  34.   input_file = open("recnext.c", O_RDONLY | O_TEXT);
  35.  
  36.   /* Create a buffer of size equal to the file length */
  37.  
  38.   buffer_length = (unsigned) filelength(input_file);
  39.  
  40.   buffer = (char *) malloc(buffer_length);
  41.   if (buffer)
  42.     file_length = read(input_file, buffer, buffer_length);
  43.   close(input_file);
  44.  
  45.   PXInit();
  46.  
  47.   /* Open a table that contains a BLOB field at field 4. */
  48.  
  49.   PXTblOpen(TABLENAME, &tblHandle, 0, 0);
  50.   PXRecBufOpen(tblHandle, &recHandle);
  51.   PXRecGet(tblHandle, recHandle);
  52.  
  53.   if((pxErr = PXBlobOpenWrite(recHandle, 4, &blbHandle, file_length, PXBLOBNEW))
  54.     != PXSUCCESS)
  55.     printf("%s\n", PXErrMsg(pxErr));
  56.   else
  57.   {
  58.     PXBlobPut(blbHandle, (unsigned) file_length, 0, buffer);
  59.     PXBlobClose(blbHandle, PXBLOBACCEPT);
  60.   }
  61.  
  62.   PXRecUpdate(tblHandle, recHandle);
  63.   PXRecBufClose(recHandle);
  64.   PXTblClose(tblHandle);
  65.   PXExit();
  66.   return (pxErr);
  67. }
  68.