// BDE - (C) Copyright 1995 by Borland International // cr8pxtbl.c #include "snipit.h" static const char szTblName[] = "CR8PXTBL"; static const char szTblType[] = szPARADOX; // Field descriptor used in creating a table. static SNIPFAR FLDDesc fldDesc[] = { { // Field 1 - AUTOINC 1, // Field number "AUTOINC", // Field name fldINT32, // Field type fldstAUTOINC, // Field subtype 0, // Field size 0, // Decimal places ( 0 ) // computed 0, // Offset in record ( 0 ) 0, // Length in bytes ( 0 ) 0, // For Null bits ( 0 ) fldvNOCHECKS, // Validity checks ( 0 ) fldrREADWRITE // Rights }, { // Field 2 - ALPHA 2, "ALPHA", fldZSTRING, fldUNKNOWN, 10, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 3 - NUMERIC 3, "NUMERIC", fldFLOAT, fldUNKNOWN, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 5 - MONEY 4, "MONEY", fldFLOAT, fldstMONEY, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 4 - DATE 5, "DATE", fldDATE, fldUNKNOWN, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 4 - SHORT 6, "SHORT", fldINT16, fldUNKNOWN, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 7 - TIME 7, "TIME", fldTIME, fldUNKNOWN, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 8 - TIMESTAMP 8, "TIMESTAMP", fldTIMESTAMP, fldUNKNOWN, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 9 - LONG 9, "LONG", fldINT32, fldUNKNOWN, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 10 - BOOL 10, "BOOL", fldBOOL, fldUNKNOWN, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 11 - BYTES 11, "BYTES", fldBYTES, fldUNKNOWN, 20, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 12 - BCD 12, "BCD", fldBCD, fldUNKNOWN, 32, 5, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 13 - MEMO 13, "MEMO", fldBLOB, fldstMEMO, 20, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 14 - BINARYBLOB 14, "BINARYBLOB", fldBLOB, fldstBINARY, 20, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 15 - FMTMEMO 15, "FMTMEMO", fldBLOB, fldstFMTMEMO, 20, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 16 - OLEOBJ 16, "OLEOBJ", fldBLOB, fldstOLEOBJ, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE }, { // Field 17 - GRAPHIC 17, "GRAPHIC", fldBLOB, fldstGRAPHIC, 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE } }; // Array of field descriptors. // The number of fields in the table. static const unsigned uNumFields = sizeof(fldDesc) / sizeof (fldDesc[0]); //===================================================================== // Function: // CreateAndFillSamplePX(); // // Description: // This sample code will create a Paradox table, append // 10 records to the table, and then delete the table. // // Note: The new Paradox 5.0 field types are used as part of this // example. Because of this, the table generated by this // example cannot be viewed in Paradox 4.5. //===================================================================== void CreateAndFillSamplePX (void) { hDBIDb hDb; // Handle to the database hDBICur hCur; // Handle to the table CRTblDesc TblDesc; // Create table descriptor UINT16 uDispNumRecs = 10 ; // Number of records to add and // display. DBIResult rslt; // Return value from IDAPI functions Screen("*** Create/Open/Fill Paradox Table 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(" Initializing the table descriptor..."); memset((void *) &TblDesc , 0, sizeof(CRTblDesc)); lstrcpy(TblDesc.szTblName, szTblName); lstrcpy(TblDesc.szTblType, szTblType); TblDesc.iFldCount = uNumFields; TblDesc.pfldDesc = fldDesc; Screen(" Creating the %s Paradox table...", szTblName); rslt = DbiCreateTable(hDb, TRUE, &TblDesc); if (ChkRslt(rslt, "CreateTable") != DBIERR_NONE) { CloseDbAndExit(&hDb); Screen("\r\n*** End of Example ***"); return; } Screen(" Fill the %s table with random data...", szTblName); FillTable(hDb, (pCHAR) szTblName, (pCHAR) szTblType, uDispNumRecs); Screen(" Open the %s table...", szTblName); rslt = DbiOpenTable(hDb, (pCHAR) szTblName, (pCHAR) szTblType, NULL, NULL, 0, dbiREADWRITE, dbiOPENSHARED, xltFIELD, FALSE, NULL, &hCur); if (ChkRslt(rslt, "OpenTable") != DBIERR_NONE) { rslt = DbiDeleteTable(hDb, (pCHAR) szTblName, (pCHAR) szTblType); ChkRslt(rslt, "DeleteTable"); CloseDbAndExit(&hDb); Screen("\r\n*** End of Example ***"); return; } Screen(" Display the %s table...", szTblName); DisplayTable(hCur, uDispNumRecs); Screen("\r\n Close the %s table...", szTblName); rslt = DbiCloseCursor(&hCur); ChkRslt(rslt, "CloseCursor"); Screen(" Deleting the %s table...", szTblName); rslt = DbiDeleteTable(hDb, (pCHAR) szTblName, (pCHAR) szTblType); ChkRslt(rslt, "DeleteTable"); Screen(" Close the database and exit IDAPI..."); CloseDbAndExit(&hDb); Screen("\r\n*** End of Example ***"); }