home *** CD-ROM | disk | FTP | other *** search
- // BDE - (C) Copyright 1995 by Borland International
-
- // TextExp.c
- #include "snipit.h"
-
- static const char szSrcTblName[] = "CUSTOMER.DB";
- static const char szSrcTblType[] = szPARADOX;
-
- static const char szDestTblName[] = "CUSTOMER.TXT";
- static const char szDestTblType[] = szASCII;
-
- //=====================================================================
- // Function:
- // TextExport();
- //
- // Description:
- // This example shows exporting data from a Paradox table
- // to a text file. The "customer.db" table will be used as the
- // source table and a "customer.txt" table will be created as
- // the destination table. The DbiBatchMove function is used to
- // copy the records from one table to another.
- //=====================================================================
- void
- TextExport (void)
- {
- DBIResult rslt; // Return value from IDAPI functions
- hDBIDb hDb; // Handle to the database
- hDBICur PDhCur; // Paradox cursor handle
- hDBICur TXThCur; // Text cursor handle
- BATTblDesc TxtTblDesc; // Descriptor for the text table
-
- Screen("*** Text Export Example ***\r\n");
-
- BREAK_IN_DEBUGGER();
-
- Screen(" Initializing IDAPI...");
- if (InitAndConnect(&hDb) != DBIERR_NONE)
- {
- Screen("\r\n*** End of Example ***");
- return;
- }
-
- Screen(" Setting the database directory...");
- rslt = DbiSetDirectory(hDb, (pCHAR) szTblDirectory);
- ChkRslt(rslt, "SetDirectory");
-
- Screen(" Force the use of a schema file for the text table...");
- rslt = DbiSetProp(hDb, dbUSESCHEMAFILE, (UINT32)TRUE);
- ChkRslt(rslt, "SetProp");
-
- Screen("\r\n Opening the %s Paradox table...", szSrcTblName);
- rslt = DbiOpenTable(hDb, (pCHAR) szSrcTblName, (pCHAR) szSrcTblType,
- NULL, NULL, 0, dbiREADWRITE, dbiOPENSHARED,
- xltFIELD, FALSE, NULL, &PDhCur);
- if (ChkRslt(rslt, "OpenTable") != DBIERR_NONE)
- {
- CloseDbAndExit(&hDb);
- Screen("\r\n*** End of Example ***");
- return;
- }
-
- rslt = DbiSetToBegin(PDhCur);
- ChkRslt(rslt, "SetToBegin");
-
- // Set the information for the destination table.
- TxtTblDesc.hDb = hDb;
- strcpy(TxtTblDesc.szTblName, szDestTblName);
- strcpy(TxtTblDesc.szTblType, szDestTblType);
-
- Screen("\r\n Create a text table copied from the %s %s table...",
- szSrcTblName, szSrcTblType);
- rslt = DbiBatchMove(NULL, PDhCur, &TxtTblDesc, NULL, batCOPY,
- 0, NULL, NULL, NULL, 0, NULL, NULL,
- NULL, NULL, NULL, NULL,
- FALSE, FALSE, NULL, TRUE);
- ChkRslt(rslt, "Batch Move");
-
- // Note that the table type has to be specified with the delimiter
- // and separator since we are opening the table as a delimited text
- // file.
- Screen("\r\n Opening the %s Text table using schema information...\r\n",
- szDestTblName);
- rslt = DbiOpenTable(hDb, (pCHAR)szDestTblName, "ASCIIDRV",
- NULL, NULL, 0, dbiREADWRITE, dbiOPENSHARED,
- xltFIELD, FALSE, NULL, &TXThCur);
- if (ChkRslt(rslt, "OpenTable") != DBIERR_NONE)
- {
- rslt = DbiCloseCursor(&PDhCur);
- ChkRslt(rslt, "CloseCursor");
- CloseDbAndExit(&hDb);
- Screen("\r\n*** End of Example ***");
- return;
- }
-
- Screen(" Displaying the first 10 records of the %s text table...",
- szDestTblName);
- DisplayTable(TXThCur, 10);
-
- Screen("\r\n Closing the %s table...", szDestTblName);
- rslt = DbiCloseCursor(&TXThCur);
- ChkRslt(rslt, "CloseCur");
-
- Screen(" Delete the %s table...", szDestTblName);
- rslt = DbiDeleteTable(hDb, (pCHAR)szDestTblName, NULL);
- ChkRslt(rslt, "DeleteTable");
-
- Screen("\r\n Closing the %s table...", szSrcTblName);
- rslt = DbiCloseCursor(&PDhCur);
- ChkRslt(rslt, "CloseCur");
-
- Screen(" Close the database and exit IDAPI...");
- CloseDbAndExit(&hDb);
-
- Screen("\r\n*** End of Example ***");
- }
-