INF: Using Windows Global Heap BuffersID: Q44730
|
Although the Windows version of DB-Library (DB-Lib) is compiled with
the medium memory model (near data pointers), all of the DB-Lib
functions use far pointers for buffer parameters. This means that you
can pass a far pointer to a buffer allocated with GlobalAlloc() to
dbbind.
Be sure to use both the DB-Lib and the Windows LOCK and UNLOCK
functions around the code that references the global heap buffers.
The following code fragment illustrates how this might be done:
HANDLE hMem1;
HANDLE hMem2;
LPSTR lpMem1;
LPSTR lpMem2;
DBLOCKLIB();
while( dbresults(dbproc)!=NO_MORE_RESULTS )
{
lpMem1 = GlobalLock(hMem1);
lpMem2 = GlobalLock(hMem2);
dbbind( dbproc, 1, ???, ??L, (LPSTR)lpMem1 );
dbbind( dbproc, 2, ???, ??L, (LPSTR)lpMem2 );
while( dbnextrow(dbproc)!=NO_MORE_ROWS )
{
TextOut(hDC,?,????, lpMem1, ??? );
TextOut(hDC,?,????, lpMem2, ??? );
}
GlobalUnlock(hMem1);
GlobalUnlock(hMem2);
}
DBUNLOCKLIB();
Additional query words: dblib
Keywords : kbprg SSrvDB_Lib
Version : 4.2
Platform : OS/2
Issue type :
Last Reviewed: March 6, 1999