home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / windows / wbtrv.zip / BTRV.CLS next >
Text File  |  1990-11-03  |  2KB  |  77 lines

  1. /* Copyright (c) 1990, Silverwood Software
  2.  * Placed in the public domain, 11/01/90
  3.  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4.  * Library decendant class to initialize, etc Novell's Btrieve DLL */!!
  5.  
  6. inherit(Library, #Btrv, nil, 2, nil)!!
  7.  
  8. now(class(Btrv))!!
  9.  
  10. now(Btrv)!!
  11.  
  12. /* This method uses method WBtrv to close a Btrieve database file */
  13. Def closeDat(self,rec)
  14. { ^WBtrv(self,vClose,gPBlk(rec),gDBuf(rec),gDLen(rec),
  15.          gKBuf(rec),255,gKNdx(rec));
  16. }
  17. !!
  18.  
  19. /* This method uses method WBtrv to open a Btrieve database */
  20. Def openDat(self,rec,datNm,ownNm,ownNmSz,mode)
  21. { setKeyBuf(rec,datNm);
  22.   if ownNm<>nil then
  23.     setDatBuf(rec,asciiz(ownNm));
  24.     setDatLen(rec,ownNmSz+1);
  25.   endif;  
  26.   ^WBtrv(self,vOpen,
  27.          gPBlk(rec),gDBuf(rec),gDLen(rec),
  28.          gKBuf(rec),255,mode);
  29. }
  30. !!
  31.  
  32. /* Remove the Btrieve database manager from memory */
  33. Def stopBtrv(self)
  34. { pcall(procs(self)[#WBTRVSTOP],nil);
  35. }
  36. !!
  37.  
  38. /* Free memory used by Btrieve DLL */
  39. Def freeDLL(self)
  40. { free(self);
  41. }
  42. !!
  43.  
  44. /* Make call to the Btrieve DLL from Actor.  Return
  45.  * the status code as an integer. */
  46. Def WBtrv(self,op,posBlk,datBuf,datLen,keyBuf,keyLen,ndx)
  47. { ^low(pcall(procs(self)[#BTRCALL],
  48.              op,posBlk,datBuf,datLen,keyBuf,
  49.              keyLen,ndx));
  50. }  
  51. !!
  52.  
  53. /* Initialize the Btrieve database manager */
  54. Def initBtrv(self,sPram)
  55. { pcall(procs(self)[#WBTRVINIT],lP(sPram));
  56. }
  57. !!
  58.  
  59. /* Load the Btrieve DLL.  Does not include #WBRQSHELLINIT since the
  60.  * Windows Btrieve Requester is not available as yet (Nov, '90) */
  61. Def loadDLL(self | windowsPath, name)
  62. { windowsPath:=new(String,144);
  63.   Call GetWindowsDirectory(windowsPath,size(windowsPath));
  64.   windowsPath:=removeNulls(windowsPath);
  65.   if windowsPath[size(windowsPath)-1]='\' then
  66.     name:="\wbtrcall.dll"; /* if '\' returned then root dir */
  67.   else  
  68.     name:=windowsPath+"\wbtrcall.dll";
  69.   endif;  
  70.   setName(self,name);
  71.   add(self,#WBTRVINIT,1,#(1));
  72.   add(self,#WBTRVSTOP,nil,nil);
  73.   add(self,#BTRCALL,0,#(0 1 1 1 1 0 0));
  74.   load(self);
  75. }
  76. !!
  77.