#ifndef hArtistRoyaltyIncomeItemTable #define hArtistRoyaltyIncomeItemTable #include "PackedTable.h" #define kTitleFieldSize 63 struct _artistRoyaltyIncomeItem { // Just going to cache the fields we use (a small subset of the fields actually in the table) private: long _artist_royalty_income_item_id; long _track_id; long _artist_royalty_album_id; public: long artist_royalty_income_item_id() { return _artist_royalty_income_item_id; } long track_id() { return _track_id; } long artist_royalty_album_id() { return _artist_royalty_album_id; } friend class ArtistRoyaltyIncomeItemTable; }; class ArtistRoyaltyIncomeItemTable : public PackedTableFlat { public: typedef struct _artistRoyaltyIncomeItem tData; tData* getIndexedData(const long index) { return (tData*)this->_getIndexedData(index); } protected: enum Field { kFieldArtistRoyaltyIncomeItemID, kFieldTrackID, kFieldArtistRoyaltyAlbumID }; PackedTable::SharedMemoryHandler _dataFileHandler; virtual DataFileHandler* _getDataFileHandler() { return &_dataFileHandler; } virtual long _dataFlatElementSize() { return sizeof(tData); } virtual const char* _maxIDQueryString() { return "SELECT MAX(artist_royalty_income_item_id) FROM artist_royalty_income_item"; } virtual const char* _dataQueryString() { return "SELECT artist_royalty_income_item_id,track_id,artist_royalty_album_id FROM artist_royalty_income_item ORDER BY artist_royalty_income_item_id"; } virtual void _readDataRow(MYSQL_ROW row) { // cast the data block to an array of the right type. // tData *array = (tData*)this->_dataFlatRAM; // First we need to determine the id, which will give us // the correct index into the array to store everything. // long artistRoyaltyIncomeItemID; PackedTable::_ParseLong(row[kFieldArtistRoyaltyIncomeItemID], &artistRoyaltyIncomeItemID); long i = artistRoyaltyIncomeItemID; array[i]._artist_royalty_income_item_id = artistRoyaltyIncomeItemID; PackedTable::_ParseLong(row[kFieldTrackID], &(array[i]._track_id)); PackedTable::_ParseLong(row[kFieldArtistRoyaltyAlbumID], &(array[i]._artist_royalty_album_id)); } }; #endif