From fc02f913371d522a025c47824fafeba8e3174da1 Mon Sep 17 00:00:00 2001 From: stuconnolly Date: Thu, 12 Aug 2010 12:56:20 +0000 Subject: Various export enhancements and fixes, including: - A new SPExportFile class, providing an abstract interface to the handling and creation of export files. - Enables the centralisation of all file/file handle creation logic as well as better support for handling situations where files fail to be created, including files that already exist at the export location. - New SPExportFileHandleStatus constants to support the reporting of file handle creation. - Update SPExporter to use the new file class instead of directly using an instance of SPFileHandle. - Add the necessary logic to deal with files that already exist on disk, by providing the user with 3 options: cancel the export, ignore the files in question or overwrite them. We might want to enhance this to make new files sequential in name to prevent overwriting. Fixes issue #742. - New SPExportFileUtilities category, which centralises all the logic relating to writing export type headers as well as dealing with problems occurred during file/file handle creation. - Improve feedback given on the export progress sheet during export initialisation. - Tidy up and improve comments. --- Source/SPSQLExporter.h | 107 ++++++++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 60 deletions(-) (limited to 'Source/SPSQLExporter.h') diff --git a/Source/SPSQLExporter.h b/Source/SPSQLExporter.h index 43ba0172..58203feb 100644 --- a/Source/SPSQLExporter.h +++ b/Source/SPSQLExporter.h @@ -40,106 +40,93 @@ { NSObject *delegate; - /** - * Tables - */ NSArray *sqlExportTables; - - /** - * Database host - */ + NSString *sqlDatabaseHost; - - /** - * Database name - */ NSString *sqlDatabaseName; - - /** - * Database version - */ NSString *sqlDatabaseVersion; - - /** - * Current table - */ NSString *sqlExportCurrentTable; - - /** - * Export errors - */ NSString *sqlExportErrors; - /** - * Include UTF-8 BOM - */ BOOL sqlOutputIncludeUTF8BOM; - - /** - * Encode BLOB fields as Hex data - */ BOOL sqlOutputEncodeBLOBasHex; - - /** - * Include export errors - */ BOOL sqlOutputIncludeErrors; - /** - * New INSERT statement divider - */ SPSQLExportInsertDivider sqlInsertDivider; - /** - * Number of tables processed by exporter - */ NSUInteger sqlCurrentTableExportIndex; - - /** - * The value after which a new INSERT statement should be created. - */ NSUInteger sqlInsertAfterNValue; - - /** - * Table information fetcher and parser - */ + SPTableData *sqlTableDataInstance; } +/** + * @property delegate Exporter delegate + */ @property(readwrite, assign) NSObject *delegate; +/** + * @property sqlExportTables Tables + */ @property(readwrite, retain) NSArray *sqlExportTables; +/** + * @property sqlDatabaseHost Database host + */ @property(readwrite, retain) NSString *sqlDatabaseHost; + +/** + * @property sqlDatabaseName Database name + */ @property(readwrite, retain) NSString *sqlDatabaseName; + +/** + * @property sqlDatabaseVersion Database version + */ @property(readwrite, retain) NSString *sqlDatabaseVersion; +/** + * @property sqlExportCurrentTable Current table + */ @property(readwrite, retain) NSString *sqlExportCurrentTable; + +/** + * @property sqlExportErrors Export errors + */ @property(readwrite, retain) NSString *sqlExportErrors; +/** + * @property sqlOutputIncludeUTF8BOM Include UTF-8 BOM + */ @property(readwrite, assign) BOOL sqlOutputIncludeUTF8BOM; + +/** + * @property sqlOutputEncodeBLOBasHex Encode BLOB fields as Hex data + */ @property(readwrite, assign) BOOL sqlOutputEncodeBLOBasHex; + +/** + * @property sqlOutputIncludeErrors Include export errors + */ @property(readwrite, assign) BOOL sqlOutputIncludeErrors; +/** + * @property sqlCurrentTableExportIndex Number of tables processed by exporter + */ @property(readwrite, assign) NSUInteger sqlCurrentTableExportIndex; -@property(readwrite, assign) NSUInteger sqlInsertAfterNValue; - -@property(readwrite, assign) SPSQLExportInsertDivider sqlInsertDivider; /** - * Initialise an instance of SPSQLExporter using the supplied delegate. - * - * @param exportDelegate The exporter delegate - * - * @return The initialised instance + * @property sqlInsertAfterNValue The value after which a new INSERT statement should be created */ -- (id)initWithDelegate:(NSObject *)exportDelegate; +@property(readwrite, assign) NSUInteger sqlInsertAfterNValue; /** - * Returns whether or not any export errors occurred. - * - * @return A BOOL indicating the occurrence of errors + * @property sqlInsertDivider New INSERT statement divider */ +@property(readwrite, assign) SPSQLExportInsertDivider sqlInsertDivider; + +- (id)initWithDelegate:(NSObject *)exportDelegate; + - (BOOL)didExportErrorsOccur; @end -- cgit v1.2.3