EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
EVEDBUtils.cpp File Reference
#include "eve-common.h"
#include "database/EVEDBUtils.h"
#include "packets/General.h"
#include "python/classes/PyDatabase.h"
#include "python/PyVisitor.h"
#include "python/PyRep.h"
Include dependency graph for EVEDBUtils.cpp:

Go to the source code of this file.

Functions

PyRepDBColumnToPyRep (const DBResultRow &row, uint32 index)
 
PyObjectDBResultToRowset (DBQueryResult &result)
 
PyTupleDBResultToTupleSet (DBQueryResult &result)
 
PyObjectDBResultToIndexRowset (DBQueryResult &result, const char *key)
 
PyObjectDBResultToIndexRowset (DBQueryResult &result, uint32 key_index)
 
PyObjectDBRowToKeyVal (DBResultRow &row)
 
PyObjectDBRowToRow (DBResultRow &row, const char *type)
 
PyTupleDBResultToRowList (DBQueryResult &result, const char *type)
 
PyDictDBResultToIntRowDict (DBQueryResult &result, uint32 key_index, const char *type)
 
PyDictDBResultToIntIntDict (DBQueryResult &result)
 
void FillPackedRow (const DBResultRow &row, PyPackedRow *into)
 
PyPackedRowCreatePackedRow (const DBResultRow &row, DBRowDescriptor *header)
 
PyListDBResultToPackedRowList (DBQueryResult &result)
 
PyTupleDBResultToPackedRowListTuple (DBQueryResult &result)
 
PyDictDBResultToPackedRowDict (DBQueryResult &result, const char *key)
 
PyDictDBResultToPackedRowDict (DBQueryResult &result, uint32 key_index)
 
PyObjectExDBResultToCRowset (DBQueryResult &result)
 
PyObjectExDBResultToCIndexedRowset (DBQueryResult &result, const char *key)
 
PyObjectExDBResultToCIndexedRowset (DBQueryResult &result, uint32 key_index)
 
PyPackedRowDBRowToPackedRow (DBResultRow &row)
 
void DBResultToIntIntDict (DBQueryResult &result, std::map< int32, int32 > &into)
 
void DBResultToUIntUIntDict (DBQueryResult &result, std::map< uint32, uint32 > &into)
 
void DBResultToIntIntlistDict (DBQueryResult &result, std::map< int32, PyRep * > &into)
 

Function Documentation

PyPackedRow* CreatePackedRow ( const DBResultRow row,
DBRowDescriptor header 
)

Definition at line 299 of file EVEDBUtils.cpp.

References FillPackedRow().

Referenced by DBResultToPackedRowDict(), DBResultToPackedRowList(), DBResultToPackedRowListTuple(), and DBRowToPackedRow().

300 {
301  PyPackedRow* res = new PyPackedRow( header );
302  FillPackedRow( row, res );
303  return res;
304 }
Packed row.
Definition: PyRep.h:961
void FillPackedRow(const DBResultRow &row, PyPackedRow *into)
Definition: EVEDBUtils.cpp:292

Here is the call graph for this function:

Here is the caller graph for this function:

PyRep* DBColumnToPyRep ( const DBResultRow row,
uint32  index 
)

Definition at line 36 of file EVEDBUtils.cpp.

References DBResultRow::ColumnLength(), DBResultRow::ColumnType(), DBTYPE_BOOL, DBTYPE_BYTES, DBTYPE_I1, DBTYPE_I2, DBTYPE_I4, DBTYPE_I8, DBTYPE_R4, DBTYPE_R8, DBTYPE_STR, DBTYPE_UI1, DBTYPE_UI2, DBTYPE_UI4, DBTYPE_UI8, DBTYPE_WSTR, DBResultRow::GetBool(), DBResultRow::GetDouble(), DBResultRow::GetInt(), DBResultRow::GetInt64(), DBResultRow::GetText(), DBResultRow::IsNull(), PyStatic, and sLog.

Referenced by DBResultToCIndexedRowset(), DBResultToIndexRowset(), DBResultToPackedRowDict(), DBResultToRowset(), DBResultToTupleSet(), DBRowToKeyVal(), DBRowToRow(), FillPackedRow(), and LiveUpdateDB::GenerateUpdates().

37 {
38  /* check for valid column */
39  if (row.IsNull(index))
40  return PyStatic.NewNone(); // this doesnt work right. client still sees this as 0 instead of None
41 
42  switch(row.ColumnType(index)) {
43  case DBTYPE_I1:
44  case DBTYPE_UI1:
45  case DBTYPE_I2:
46  case DBTYPE_UI2:
47  case DBTYPE_I4:
48  case DBTYPE_UI4:
49  return new PyInt( row.GetInt( index ) );
50 
51  case DBTYPE_I8:
52  case DBTYPE_UI8:
53  return new PyLong( row.GetInt64( index ) );
54 
55  case DBTYPE_R8:
56  case DBTYPE_R4:
57  return new PyFloat( row.GetDouble( index ) );
58 
59  case DBTYPE_BOOL:
60  return new PyBool( row.GetBool(index) );
61 
62  case DBTYPE_STR:
63  return new PyString( row.GetText( index ), row.ColumnLength( index ) );
64 
65  case DBTYPE_WSTR:
66  return new PyWString( row.GetText( index ), row.ColumnLength( index ) );
67 
68  case DBTYPE_BYTES: {
69  const uint8* data = (const uint8*)row.GetText( index );
70  const uint32 len = row.ColumnLength( index );
71  return new PyBuffer( data, data + len );
72  }
73 
74  default: {
75  sLog.Error( "DBColumnToPyRep", "invalid column type: %u", row.ColumnType(index) );
76  return PyStatic.NewNone();
77  }
78  }
79 }
unsigned __int8 uint8
Definition: eve-compat.h:46
uint32 ColumnLength(uint32 index) const
Definition: dbcore.cpp:624
const char * GetText(uint32 index) const
Definition: dbcore.h:104
Python string.
Definition: PyRep.h:430
int32 GetInt(uint32 index) const
Definition: dbcore.cpp:635
double GetDouble(uint32 index) const
Definition: dbcore.cpp:693
Python floating point number.
Definition: PyRep.h:292
Python wide string.
Definition: PyRep.h:475
bool GetBool(uint32 index) const
Definition: dbcore.cpp:647
Python boolean.
Definition: PyRep.h:323
#define sLog
Evaluates to a NewLog instance.
Definition: LogNew.h:250
Python integer.
Definition: PyRep.h:231
#define PyStatic
Definition: PyRep.h:1209
bool IsNull(uint32 index) const
Definition: dbcore.h:102
unsigned __int32 uint32
Definition: eve-compat.h:50
Python buffer.
Definition: PyRep.h:382
int64 GetInt64(uint32 index) const
Definition: dbcore.cpp:670
DBTYPE ColumnType(uint32 index) const
Definition: dbcore.h:115
Python long integer.
Definition: PyRep.h:261

Here is the call graph for this function:

Here is the caller graph for this function:

PyObjectEx* DBResultToCIndexedRowset ( DBQueryResult result,
const char *  key 
)

Definition at line 419 of file EVEDBUtils.cpp.

References DBQueryResult::ColumnCount(), DBQueryResult::ColumnName(), DBResultToCIndexedRowset(), and sLog.

Referenced by DBResultToCIndexedRowset(), AllianceDB::GetApplications(), CorporationDB::GetApplications(), AllianceDB::GetContacts(), CorporationDB::GetContacts(), AllianceDB::GetLabels(), CorporationDB::GetLabels(), CharacterDB::GetLabels(), AllianceDB::GetMyApplications(), ManagerDB::GetOperands(), and CorporationDB::GetVotes().

420 {
421  uint32 cc = result.ColumnCount();
422  uint32 key_index(0);
423 
424  for(key_index = 0; key_index < cc; key_index++)
425  if(strcmp(key, result.ColumnName(key_index)) == 0)
426  break;
427 
428  if(key_index == cc)
429  {
430  sLog.Error("EVEDBUtils", "DBResultToCIndexedRowset | Failed to find key column '%s' in result for CIndexRowset", key);
431  return NULL;
432  }
433 
434  return DBResultToCIndexedRowset(result, key_index);
435 }
PyObjectEx * DBResultToCIndexedRowset(DBQueryResult &result, const char *key)
Definition: EVEDBUtils.cpp:419
#define sLog
Evaluates to a NewLog instance.
Definition: LogNew.h:250
uint32 ColumnCount() const
Definition: dbcore.h:76
const char * ColumnName(uint32 index) const
Definition: dbcore.cpp:569
unsigned __int32 uint32
Definition: eve-compat.h:50
typeID Spawn an NPC with the specified type text Search for items matching the specified query() type() key(value)-Send an OnRemoteMessage" ) COMMAND( setbpattr

Here is the call graph for this function:

Here is the caller graph for this function:

PyObjectEx* DBResultToCIndexedRowset ( DBQueryResult result,
uint32  key_index 
)
Todo:
Mem leak. header never freed

Definition at line 437 of file EVEDBUtils.cpp.

References DBColumnToPyRep(), FillPackedRow(), DBQueryResult::GetRow(), and CIndexedRowSet::NewRow().

437  {
439  DBRowDescriptor *header = new DBRowDescriptor( result );
440  CIndexedRowSet *rowset = new CIndexedRowSet( &header );
441 
442  DBResultRow row;
443  while( result.GetRow( row ) )
444  {
445  PyPackedRow* into = rowset->NewRow( DBColumnToPyRep(row, key_index) );
446  FillPackedRow( row, into );
447  }
448 
449  //PyDecRef( header );
450  return rowset;
451 }
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
Python object "blue.DBRowDescriptor".
Definition: PyDatabase.h:41
PyPackedRow * NewRow(PyRep *key)
Definition: PyDatabase.cpp:191
Python object "dbutil.CIndexedRowset".
Definition: PyDatabase.h:172
Packed row.
Definition: PyRep.h:961
void FillPackedRow(const DBResultRow &row, PyPackedRow *into)
Definition: EVEDBUtils.cpp:292
PyRep * DBColumnToPyRep(const DBResultRow &row, uint32 index)
Definition: EVEDBUtils.cpp:36

Here is the call graph for this function:

PyObjectEx* DBResultToCRowset ( DBQueryResult result)
Todo:
Mem leak. header never freed

Definition at line 402 of file EVEDBUtils.cpp.

References FillPackedRow(), DBQueryResult::GetRow(), and CRowSet::NewRow().

Referenced by FactoryDB::AssemblyLinesGet(), FactoryDB::AssemblyLinesSelectAlliance(), FactoryDB::AssemblyLinesSelectCorporation(), FactoryDB::AssemblyLinesSelectPersonal(), FactoryDB::AssemblyLinesSelectPrivate(), FactoryDB::AssemblyLinesSelectPublic(), ObjCacheDB::Generate_a_accessories(), ObjCacheDB::Generate_a_backgrounds(), ObjCacheDB::Generate_a_beards(), ObjCacheDB::Generate_a_costumes(), ObjCacheDB::Generate_a_decos(), ObjCacheDB::Generate_a_eyebrows(), ObjCacheDB::Generate_a_eyes(), ObjCacheDB::Generate_a_hairs(), ObjCacheDB::Generate_a_lights(), ObjCacheDB::Generate_a_lipsticks(), ObjCacheDB::Generate_a_makeups(), ObjCacheDB::Generate_a_skins(), ObjCacheDB::Generate_AllianceShortnames(), ObjCacheDB::Generate_BillTypes(), ObjCacheDB::Generate_bl_accessories(), ObjCacheDB::Generate_bl_backgrounds(), ObjCacheDB::Generate_bl_beards(), ObjCacheDB::Generate_bl_costumes(), ObjCacheDB::Generate_bl_decos(), ObjCacheDB::Generate_bl_eyebrows(), ObjCacheDB::Generate_bl_eyes(), ObjCacheDB::Generate_bl_hairs(), ObjCacheDB::Generate_bl_lights(), ObjCacheDB::Generate_bl_lipsticks(), ObjCacheDB::Generate_bl_makeups(), ObjCacheDB::Generate_bl_skins(), ObjCacheDB::Generate_BloodlineNames(), ObjCacheDB::Generate_c_chrAncestries(), ObjCacheDB::Generate_c_chrAttributes(), ObjCacheDB::Generate_c_chrBloodlines(), ObjCacheDB::Generate_c_chrRaces(), ObjCacheDB::Generate_c_chrSchools(), ObjCacheDB::Generate_cacheLocations(), ObjCacheDB::Generate_cacheOwners(), ObjCacheDB::Generate_certificateRelationships(), ObjCacheDB::Generate_certificates(), ObjCacheDB::Generate_CharNewExtraCareers(), ObjCacheDB::Generate_CharNewExtraCareerSkills(), ObjCacheDB::Generate_CharNewExtraRaceSkills(), ObjCacheDB::Generate_CharNewExtraSpecialities(), ObjCacheDB::Generate_CharNewExtraSpecialitySkills(), ObjCacheDB::Generate_dgmAttribs(), ObjCacheDB::Generate_dgmEffects(), ObjCacheDB::Generate_dgmExpressions(), ObjCacheDB::Generate_dgmTypeAttribs(), ObjCacheDB::Generate_dgmTypeEffects(), ObjCacheDB::Generate_eveBulkDataUnits(), ObjCacheDB::Generate_eveGraphics(), ObjCacheDB::Generate_eveStaticLocations(), ObjCacheDB::Generate_eveStaticOwners(), ObjCacheDB::Generate_Icons(), ObjCacheDB::Generate_invBlueprintTypes(), ObjCacheDB::Generate_invCategories(), ObjCacheDB::Generate_invContrabandTypes(), ObjCacheDB::Generate_invGroups(), ObjCacheDB::Generate_invMetaGroups(), ObjCacheDB::Generate_invMetaTypes(), ObjCacheDB::Generate_invShipTypes(), ObjCacheDB::Generate_Invtypematerials(), ObjCacheDB::Generate_invTypeReactions(), ObjCacheDB::Generate_invTypes(), ObjCacheDB::Generate_Locationscenes(), ObjCacheDB::Generate_locationWormholeClasses(), ObjCacheDB::Generate_mapCelestialDescriptions(), ObjCacheDB::Generate_OverviewDefaultGroups(), ObjCacheDB::Generate_OverviewDefaults(), ObjCacheDB::Generate_Ownericons(), ObjCacheDB::Generate_PaperdollColorNames(), ObjCacheDB::Generate_PaperdollColorRestrictions(), ObjCacheDB::Generate_PaperdollColors(), ObjCacheDB::Generate_PaperdollModifierLocations(), ObjCacheDB::Generate_PaperdollResources(), ObjCacheDB::Generate_PaperdollSculptingLocations(), ObjCacheDB::Generate_ramActivities(), ObjCacheDB::Generate_ramALTypeCategory(), ObjCacheDB::Generate_ramALTypeGroup(), ObjCacheDB::Generate_ramALTypes(), ObjCacheDB::Generate_ramCompletedStatuses(), ObjCacheDB::Generate_ramTypeRequirements(), ObjCacheDB::Generate_Schematics(), ObjCacheDB::Generate_Schematicspinmap(), ObjCacheDB::Generate_Schematicstypemap(), ObjCacheDB::Generate_Sounds(), ObjCacheDB::Generate_tickerNames(), CorporationDB::GetAdGroupData(), CorporationDB::GetAdRegistryData(), CorporationDB::GetAdTypeData(), CorporationDB::GetAdvert(), ManagerDB::GetAgents(), CorporationDB::GetAllCorpMedals(), CorporationDB::GetAssetInventory(), CorporationDB::GetAssetInventoryForLocation(), AllianceDB::GetBulletins(), CorporationDB::GetBulletins(), ConfigDB::GetCelestialStatistic(), CharacterDB::GetCharacterList(), StandingDB::GetCharNPCStandings(), CharacterDB::GetCharPublicInfo3(), CharacterDB::GetCharSelectInfo(), StandingDB::GetCharStandings(), PosMgrDB::GetCorpControlTowers(), CorporationDB::GetCorpMedalData(), CorporationDB::GetCorpRoleGroups(), CorporationDB::GetCorpRoles(), StandingDB::GetCorpStandings(), BulkDB::GetDogmaAttribs(), BulkDB::GetDogmaEffects(), BulkDB::GetDogmaTypeAttribs(), BulkDB::GetDogmaTypeEffects(), ConfigDB::GetDynamicCelestials(), BulkDB::GetExpressions(), StandingDB::GetFactionStandings(), CorporationDB::GetItemEvents(), AccountDB::GetJournal(), CharacterDB::GetKillOrLoss(), CorporationDB::GetKillsAndLosses(), MailDB::GetMailStatus(), ConfigDB::GetMapObjects(), CorporationDB::GetMedalDetails(), CorporationDB::GetMedalsReceived(), CorporationDB::GetMedalsReceivedDetails(), CorporationDB::GetMemberTrackingInfo(), CorporationDB::GetMemberTrackingInfoSimple(), CorporationDB::GetMktInfo(), CorporationDB::GetMyApplications(), CharacterDB::GetMyCorpMates(), StandingDB::GetMyStandings(), MailDB::GetNewMail(), MarketMgr::GetNewPriceHistory(), StationDB::GetOffices(), MarketMgr::GetOldPriceHistory(), BulkDB::GetOperands(), MarketDB::GetOrders(), CharacterDB::GetOwnerNote(), CharacterDB::GetOwnerNoteLabels(), PaperDollDB::GetPaperDollAvatarColors(), PaperDollDB::GetPaperDollAvatarModifiers(), PaperDollDB::GetPaperDollAvatarSculpts(), PaperDollDB::GetPaperDollPortraitData(), PlanetDB::GetPlanetsForChar(), CorporationDB::GetRecipientsOfMedal(), CorporationDB::GetRoleHistroy(), CorporationDB::GetSanctionedItems(), PosMgrDB::GetSiloCapacityForType(), CharacterDB::List(), CharacterDB::ListStationBlueprintItems(), CharacterDB::ListStationItems(), CharacterDB::ListStations(), and StaticDataMgr::SetBPMatlType().

403 {
405  DBRowDescriptor *header = new DBRowDescriptor( result );
406  CRowSet *rowset = new CRowSet( &header );
407 
408  DBResultRow row;
409  while( result.GetRow( row ) )
410  {
411  PyPackedRow* into = rowset->NewRow();
412  FillPackedRow( row, into );
413  }
414 
415  //PyDecRef( header );
416  return rowset;
417 }
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
Python object "blue.DBRowDescriptor".
Definition: PyDatabase.h:41
Python object "dbutil.CRowset".
Definition: PyDatabase.h:124
PyPackedRow * NewRow()
Definition: PyDatabase.cpp:132
Packed row.
Definition: PyRep.h:961
void FillPackedRow(const DBResultRow &row, PyPackedRow *into)
Definition: EVEDBUtils.cpp:292

Here is the call graph for this function:

PyObject* DBResultToIndexRowset ( DBQueryResult result,
const char *  key 
)

Definition at line 144 of file EVEDBUtils.cpp.

References DBQueryResult::ColumnCount(), DBQueryResult::ColumnName(), DBResultToIndexRowset(), and sLog.

Referenced by DBResultToIndexRowset(), CertificateMgrDB::GetCertificateCategories(), CharacterDB::GetContacts(), AllianceDB::GetMembers(), MarketDB::GetRegionBest(), CorporationDB::GetShares(), MarketDB::GetStationAsks(), MarketDB::GetSystemAsks(), ConfigDB::GetUnits(), and CorporationDB::GetVoteOptions().

144  {
145  uint32 cc = result.ColumnCount();
146  uint32 key_index(0);
147 
148  for(key_index = 0; key_index < cc; ++key_index)
149  if(strcmp(key, result.ColumnName(key_index)) == 0)
150  break;
151 
152  if(key_index == cc)
153  {
154  sLog.Error("EVEDBUtils", "DBResultToIndexRowset | Failed to find key column '%s' in result for IndexRowset", key);
155  return nullptr;
156  }
157 
158  return DBResultToIndexRowset(result, key_index);
159 }
#define sLog
Evaluates to a NewLog instance.
Definition: LogNew.h:250
uint32 ColumnCount() const
Definition: dbcore.h:76
const char * ColumnName(uint32 index) const
Definition: dbcore.cpp:569
unsigned __int32 uint32
Definition: eve-compat.h:50
PyObject * DBResultToIndexRowset(DBQueryResult &result, const char *key)
Definition: EVEDBUtils.cpp:144
typeID Spawn an NPC with the specified type text Search for items matching the specified query() type() key(value)-Send an OnRemoteMessage" ) COMMAND( setbpattr

Here is the call graph for this function:

Here is the caller graph for this function:

PyObject* DBResultToIndexRowset ( DBQueryResult result,
uint32  key_index 
)

Definition at line 161 of file EVEDBUtils.cpp.

References args, DBQueryResult::ColumnCount(), DBQueryResult::ColumnName(), DBColumnToPyRep(), DBQueryResult::GetRow(), items, key(), PyList::SetItem(), PyDict::SetItem(), PyList::SetItemString(), and PyDict::SetItemString().

161  {
162  uint32 cc = result.ColumnCount();
163 
164  //start building the IndexRowset
165  PyDict *args = new PyDict();
166 
167  if(cc == 0 || cc < key_index)
168  return new PyObject( "util.IndexRowset", args );
169 
170  //list off the column names:
171  PyList *header = new PyList(cc);
172  args->SetItemString("header", header);
173  for(uint32 i(0); i < cc; ++i)
174  header->SetItemString(i, result.ColumnName(i));
175 
176  //RowClass:
177  args->SetItemString("RowClass", new PyToken("util.Row"));
178  //idName:
179  args->SetItemString("idName", new PyString( result.ColumnName(key_index) ));
180 
181  //items:
182  PyDict *items = new PyDict();
183  //add a line entry for each result row:
184  uint32 i(0);
185  DBResultRow row;
186  while(result.GetRow(row)) {
187  PyRep *key = DBColumnToPyRep(row, key_index);
188  PyList *line = new PyList(cc);
189  for(i = 0; i < cc; ++i)
190  line->SetItem(i, DBColumnToPyRep(row, i));
191 
192  items->SetItem(key, line);
193  }
194 
195  args->SetItemString("items", items);
196  return new PyObject( "util.IndexRowset", args );
197 }
Base Python wire object.
Definition: PyRep.h:66
Python string.
Definition: PyRep.h:430
Python's dictionary.
Definition: PyRep.h:719
void SetItemString(size_t index, const char *str)
Stores Python string.
Definition: PyRep.h:699
* args
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
Python object.
Definition: PyRep.h:826
uint32 ColumnCount() const
Definition: dbcore.h:76
void SetItem(size_t index, PyRep *object)
Stores Python object.
Definition: PyRep.h:682
const char * ColumnName(uint32 index) const
Definition: dbcore.cpp:569
unsigned __int32 uint32
Definition: eve-compat.h:50
Python token (eg. class name).
Definition: PyRep.h:522
typeID Spawn an NPC with the specified type text Search for items matching the specified query() type() key(value)-Send an OnRemoteMessage" ) COMMAND( setbpattr
entityID heal the character with the entityID note giving you detailed ship status information gives a list of all dynamic entities and players and their destinyState in this bubble shows some current destiny variables save all items
void SetItem(PyRep *key, PyRep *value)
SetItem adds or sets a database entry.
Definition: PyRep.cpp:713
Python list.
Definition: PyRep.h:639
void SetItemString(const char *key, PyRep *value)
SetItemString adds or sets a database entry.
Definition: PyRep.h:812
PyRep * DBColumnToPyRep(const DBResultRow &row, uint32 index)
Definition: EVEDBUtils.cpp:36

Here is the call graph for this function:

PyDict* DBResultToIntIntDict ( DBQueryResult result)

Definition at line 273 of file EVEDBUtils.cpp.

References DBResultRow::GetInt(), DBQueryResult::GetRow(), DBResultRow::IsNull(), PyStatic, and PyDict::SetItem().

Referenced by FactionWarMgrDB::GetWarFactions(), and SearchDB::Query().

273  {
274  PyDict *res = new PyDict();
275  //add a line entry for each result row:
276  DBResultRow row;
277  while(result.GetRow(row)) {
278  if (row.IsNull(0))
279  continue; //no working with NULL keys...
280  int32 k = row.GetInt(0);
281  if (k == 0)
282  continue; //likely a non-integer key
283  if (row.IsNull(1))
284  res->SetItem( new PyInt(k), PyStatic.NewNone() );
285  else
286  res->SetItem( new PyInt(k), new PyInt(row.GetInt(1)) );
287  }
288 
289  return res;
290 }
int32 GetInt(uint32 index) const
Definition: dbcore.cpp:635
Python's dictionary.
Definition: PyRep.h:719
signed __int32 int32
Definition: eve-compat.h:49
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
Python integer.
Definition: PyRep.h:231
#define PyStatic
Definition: PyRep.h:1209
bool IsNull(uint32 index) const
Definition: dbcore.h:102
void SetItem(PyRep *key, PyRep *value)
SetItem adds or sets a database entry.
Definition: PyRep.cpp:713

Here is the call graph for this function:

Here is the caller graph for this function:

void DBResultToIntIntDict ( DBQueryResult result,
std::map< int32, int32 > &  into 
)

these functions aren't used.

Definition at line 463 of file EVEDBUtils.cpp.

References DBResultRow::GetInt(), DBQueryResult::GetRow(), and DBResultRow::IsNull().

463  {
464  //add a line entry for each result row:
465  DBResultRow row;
466  while(result.GetRow(row)) {
467  if (row.IsNull(0))
468  continue; //no working with NULL keys...
469  int32 k = row.GetInt(0);
470  int32 v(0);
471  if (row.IsNull(1))
472  v = 0; //we can deal with assuming NULL == 0
473  else
474  v = row.GetInt(1);
475  into[k] = v;
476  }
477 }
int32 GetInt(uint32 index) const
Definition: dbcore.cpp:635
signed __int32 int32
Definition: eve-compat.h:49
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
bool IsNull(uint32 index) const
Definition: dbcore.h:102

Here is the call graph for this function:

void DBResultToIntIntlistDict ( DBQueryResult result,
std::map< int32, PyRep * > &  into 
)

Definition at line 495 of file EVEDBUtils.cpp.

References PyList::AddItemInt(), DBResultRow::GetInt(), DBQueryResult::GetRow(), DBResultRow::GetUInt(), and PyDecRef.

Referenced by ManagerDB::LoadFactionConstellations(), ManagerDB::LoadFactionRaces(), ManagerDB::LoadFactionRegions(), and ManagerDB::LoadFactionSolarSystems().

495  {
496  /* this builds a map from the int in result[0], to a list of each result[1]
497  * which is has the same result[0]. This function assumes the result is
498  * ORDER BY result[0]
499  */
500  uint32 last_key = 0xFFFFFFFF;
501 
502  PyList *l = NULL;
503 
504  DBResultRow row;
505  while( result.GetRow( row ) )
506  {
507  uint32 k = row.GetUInt(0);
508  if (k != last_key )
509  {
510  //watch for overwrite, no guarantee we are dealing with a key.
511  std::map<int32, PyRep *>::iterator res = into.find(k);
512  if (res != into.end() )
513  //log an error or warning?
514  PyDecRef( res->second );
515 
516  into[k] = l = new PyList();
517  last_key = k;
518  }
519 
520  l->AddItemInt( row.GetInt( 1 ) );
521  }
522 }
int32 GetInt(uint32 index) const
Definition: dbcore.cpp:635
uint32 GetUInt(uint32 index) const
Definition: dbcore.cpp:658
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
void AddItemInt(int32 intval)
Definition: PyRep.h:702
#define PyDecRef(op)
Definition: PyRep.h:57
unsigned __int32 uint32
Definition: eve-compat.h:50
Python list.
Definition: PyRep.h:639

Here is the call graph for this function:

Here is the caller graph for this function:

PyDict* DBResultToIntRowDict ( DBQueryResult result,
uint32  key_index,
const char *  type 
)

Definition at line 257 of file EVEDBUtils.cpp.

References DBRowToRow(), DBResultRow::GetInt(), DBQueryResult::GetRow(), and PyDict::SetItem().

Referenced by CertificateMgrDB::GetCertificateClasses(), and ManagerDB::LoadNPCCorpInfo().

257  {
258  PyDict *res = new PyDict();
259  //add a line entry for each result row:
260  DBResultRow row;
261  while (result.GetRow(row)) {
262  //this could be more efficient by not building the column list each time, but cloning it instead.
263  PyObject *r = DBRowToRow(row, type);
264  int32 k = row.GetInt(key_index);
265  if (k == 0)
266  continue; //likely a non-integer key
267  res->SetItem(new PyInt(k), r);
268  }
269 
270  return res;
271 }
int32 GetInt(uint32 index) const
Definition: dbcore.cpp:635
Python's dictionary.
Definition: PyRep.h:719
signed __int32 int32
Definition: eve-compat.h:49
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
PyObject * DBRowToRow(DBResultRow &row, const char *type)
Definition: EVEDBUtils.cpp:208
Python object.
Definition: PyRep.h:826
Python integer.
Definition: PyRep.h:231
void SetItem(PyRep *key, PyRep *value)
SetItem adds or sets a database entry.
Definition: PyRep.cpp:713

Here is the call graph for this function:

Here is the caller graph for this function:

PyDict* DBResultToPackedRowDict ( DBQueryResult result,
const char *  key 
)

Definition at line 340 of file EVEDBUtils.cpp.

References DBQueryResult::ColumnCount(), DBQueryResult::ColumnName(), DBResultToPackedRowDict(), and sLog.

Referenced by DBResultToPackedRowDict(), and CorporationDB::GetVoteItems().

341 {
342  uint32 cc = result.ColumnCount();
343  uint32 key_index(0);
344 
345  for (key_index = 0; key_index < cc; ++key_index)
346  if (strcmp(key, result.ColumnName(key_index)) == 0)
347  break;
348 
349  if(key_index == cc)
350  {
351  sLog.Error("EVEDBUtils", "DBResultToPackedRowDict | Failed to find key column '%s' in result for CIndexRowset", key);
352  return NULL;
353  }
354 
355  return DBResultToPackedRowDict(result, key_index);
356 }
#define sLog
Evaluates to a NewLog instance.
Definition: LogNew.h:250
uint32 ColumnCount() const
Definition: dbcore.h:76
const char * ColumnName(uint32 index) const
Definition: dbcore.cpp:569
unsigned __int32 uint32
Definition: eve-compat.h:50
PyDict * DBResultToPackedRowDict(DBQueryResult &result, const char *key)
Definition: EVEDBUtils.cpp:340
typeID Spawn an NPC with the specified type text Search for items matching the specified query() type() key(value)-Send an OnRemoteMessage" ) COMMAND( setbpattr

Here is the call graph for this function:

Here is the caller graph for this function:

PyDict* DBResultToPackedRowDict ( DBQueryResult result,
uint32  key_index 
)

Definition at line 358 of file EVEDBUtils.cpp.

References CreatePackedRow(), DBColumnToPyRep(), DBQueryResult::GetRow(), PyDecRef, PyIncRef, and PyDict::SetItem().

359 {
360  DBRowDescriptor *header = new DBRowDescriptor( result );
361 
362  PyDict *res = new PyDict();
363 
364  DBResultRow row;
365  while( result.GetRow(row) ) {
366  res->SetItem( DBColumnToPyRep(row, key_index), CreatePackedRow( row, header ) );
367  PyIncRef( header );
368  }
369 
370  PyDecRef( header );
371  return res;
372 }
Python's dictionary.
Definition: PyRep.h:719
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
Python object "blue.DBRowDescriptor".
Definition: PyDatabase.h:41
#define PyDecRef(op)
Definition: PyRep.h:57
#define PyIncRef(op)
Definition: PyRep.h:56
void SetItem(PyRep *key, PyRep *value)
SetItem adds or sets a database entry.
Definition: PyRep.cpp:713
PyRep * DBColumnToPyRep(const DBResultRow &row, uint32 index)
Definition: EVEDBUtils.cpp:36
PyPackedRow * CreatePackedRow(const DBResultRow &row, DBRowDescriptor *header)
Definition: EVEDBUtils.cpp:299

Here is the call graph for this function:

PyList* DBResultToPackedRowList ( DBQueryResult result)

Definition at line 306 of file EVEDBUtils.cpp.

References CreatePackedRow(), DBQueryResult::GetRow(), DBQueryResult::GetRowCount(), PyDecRef, PyIncRef, and PyList::SetItem().

Referenced by ObjCacheDB::Generate_chrAttributes(), ObjCacheDB::Generate_chrBloodlines(), ObjCacheDB::Generate_chrRaces(), ObjCacheDB::Generate_eveUnits(), and ObjCacheDB::Generate_invFlags().

307 {
308  DBRowDescriptor *header = new DBRowDescriptor( result );
309  PyList * list = new PyList( result.GetRowCount() );
310 
311  uint32 i(0);
312  DBResultRow row;
313  while( result.GetRow(row) ) {
314  list->SetItem( i++, CreatePackedRow( row, header ) );
315  PyIncRef( header );
316  }
317 
318  PyDecRef( header );
319  return list;
320 }
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
Python object "blue.DBRowDescriptor".
Definition: PyDatabase.h:41
void SetItem(size_t index, PyRep *object)
Stores Python object.
Definition: PyRep.h:682
#define PyDecRef(op)
Definition: PyRep.h:57
unsigned __int32 uint32
Definition: eve-compat.h:50
#define PyIncRef(op)
Definition: PyRep.h:56
size_t GetRowCount()
Definition: dbcore.h:72
Python list.
Definition: PyRep.h:639
PyPackedRow * CreatePackedRow(const DBResultRow &row, DBRowDescriptor *header)
Definition: EVEDBUtils.cpp:299

Here is the call graph for this function:

Here is the caller graph for this function:

PyTuple* DBResultToPackedRowListTuple ( DBQueryResult result)

Definition at line 322 of file EVEDBUtils.cpp.

References CreatePackedRow(), DBQueryResult::GetRow(), DBQueryResult::GetRowCount(), PyIncRef, PyTuple::SetItem(), and PyList::SetItem().

323 {
324  DBRowDescriptor * header = new DBRowDescriptor( result );
325  PyList * list = new PyList( result.GetRowCount() );
326 
327  DBResultRow row;
328  uint32 i(0);
329  while( result.GetRow(row) ) {
330  list->SetItem( i++, CreatePackedRow( row, header ) );
331  PyIncRef( header );
332  }
333 
334  PyTuple* res = new PyTuple(2);
335  res->SetItem( 0, header );
336  res->SetItem( 1, list );
337  return res;
338 }
Python tuple.
Definition: PyRep.h:567
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
Python object "blue.DBRowDescriptor".
Definition: PyDatabase.h:41
void SetItem(size_t index, PyRep *object)
Stores Python object.
Definition: PyRep.h:610
void SetItem(size_t index, PyRep *object)
Stores Python object.
Definition: PyRep.h:682
unsigned __int32 uint32
Definition: eve-compat.h:50
#define PyIncRef(op)
Definition: PyRep.h:56
size_t GetRowCount()
Definition: dbcore.h:72
Python list.
Definition: PyRep.h:639
PyPackedRow * CreatePackedRow(const DBResultRow &row, DBRowDescriptor *header)
Definition: EVEDBUtils.cpp:299

Here is the call graph for this function:

PyTuple* DBResultToRowList ( DBQueryResult result,
const char *  type 
)

Definition at line 231 of file EVEDBUtils.cpp.

References DBQueryResult::ColumnCount(), DBQueryResult::ColumnName(), DBRowToRow(), DBQueryResult::GetRow(), PyList::items, PyTuple::SetItem(), and PyList::SetItemString().

Referenced by ConfigDB::GetMultiCorpTickerNamesEx(), ConfigDB::GetMultiGraphicsEx(), and ConfigDB::GetMultiInvTypesEx().

231  {
232  uint32 cc = result.ColumnCount();
233  if(cc == 0)
234  return(new PyTuple(0));
235 
236  PyList *cols = new PyList(cc);
237  //list off the column names:
238  for(uint32 r(0); r < cc; ++r)
239  cols->SetItemString(r, result.ColumnName(r));
240 
241  PyTuple *res = new PyTuple(2);
242  res->SetItem( 0, cols );
243 
244  //add a line entry for each result row:
245  DBResultRow row;
246  PyList *reslist = new PyList();
247  while(result.GetRow(row)) {
248  //this could be more efficient by not building the column list each time, but cloning it instead.
249  PyObject *o = DBRowToRow(row, type);
250  reslist->items.push_back(o);
251  }
252  res->SetItem( 1, reslist );
253 
254  return res;
255 }
void SetItemString(size_t index, const char *str)
Stores Python string.
Definition: PyRep.h:699
Python tuple.
Definition: PyRep.h:567
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
PyObject * DBRowToRow(DBResultRow &row, const char *type)
Definition: EVEDBUtils.cpp:208
Python object.
Definition: PyRep.h:826
uint32 ColumnCount() const
Definition: dbcore.h:76
void SetItem(size_t index, PyRep *object)
Stores Python object.
Definition: PyRep.h:610
storage_type items
Definition: PyRep.h:708
const char * ColumnName(uint32 index) const
Definition: dbcore.cpp:569
unsigned __int32 uint32
Definition: eve-compat.h:50
Python list.
Definition: PyRep.h:639

Here is the call graph for this function:

Here is the caller graph for this function:

PyObject* DBResultToRowset ( DBQueryResult result)

Definition at line 81 of file EVEDBUtils.cpp.

References PyList::AddItem(), args, DBQueryResult::ColumnCount(), DBQueryResult::ColumnName(), DBColumnToPyRep(), DBQueryResult::GetRow(), PyList::SetItem(), PyList::SetItemString(), and PyDict::SetItemString().

Referenced by TutorialDB::GetAllCriterias(), AllianceDB::GetAllianceMembers(), CertificateMgrDB::GetAllShipCertificateRecommendations(), TutorialDB::GetAllTutorials(), ManagerDB::GetBillTypes(), CharacterDB::GetBounty(), TutorialDB::GetCategories(), CorporationDB::GetCorporationBills(), MapDB::GetDynamicData(), AllianceDB::GetEmploymentRecord(), CorporationDB::GetEmploymentRecord(), ManagerDB::GetEntryTypes(), CorporationDB::GetEveOwners(), ShipDB::GetInsuranceByOwnerID(), FactoryDB::GetJobs2(), ManagerDB::GetKeyMap(), LSCDB::GetMailHeaders(), ConfigDB::GetMap(), ConfigDB::GetMapConnections(), ConfigDB::GetMapLandmarks(), ConfigDB::GetMapOffices(), FactoryDB::GetMaterialCompositionOfItemType(), CorporationDB::GetMedalStatuses(), PlanetDB::GetMyLaunchesDetails(), CorporationDB::GetMyShares(), ManagerDB::GetNPCDivisions(), MarketDB::GetOrdersForOwner(), TutorialDB::GetPageCriterias(), TutorialDB::GetPages(), MapDB::GetPseudoSecurities(), AllianceDB::GetRankedAlliances(), CharacterDB::GetSkillHistory(), MapDB::GetSolSystemVisits(), StandingDB::GetStandingTransactions(), MapDB::GetStationExtraInfo(), MapDB::GetStationOpServices(), CorporationDB::GetStations(), MapDB::GetStationServiceInfo(), ConfigDB::GetStationSolarSystemsByOwner(), ConfigDB::GetTextsForGroup(), CharacterDB::GetTopBounties(), MarketDB::GetTransactions(), TutorialDB::GetTutorial(), TutorialDB::GetTutorialCriterias(), TutorialDB::GetTutorialsAndConnections(), SystemDB::ListFactions(), SystemDB::ListJumps(), ConfigDB::ListLanguages(), CorporationDB::ListStationCorps(), CorporationDB::ListStationOwners(), ServiceDB::LookupChars(), ServiceDB::LookupCorporations(), ServiceDB::LookupCorporationTickers(), ServiceDB::LookupFactions(), ServiceDB::LookupKnownLocationsByGroup(), ServiceDB::LookupOwners(), ServiceDB::LookupStations(), and StandingDB::PrimeCharStandings().

82 {
83  uint32 cc = result.ColumnCount();
84 
85  PyDict *args = new PyDict();
86 
87  /* check if we have a empty query result and return a empty RowSet */
88  if (cc == 0 )
89  return new PyObject( "util.Rowset" , args );
90 
91  //list off the column names:
92  PyList *header = new PyList( cc );
93  for(uint32 r(0); r < cc; ++r)
94  header->SetItemString( r, result.ColumnName(r));
95  args->SetItemString("header", header);
96 
97  //RowClass:
98  args->SetItemString("RowClass", new PyToken("util.Row"));
99 
100  //lines:
101  PyList *rowlist = new PyList();
102  //add a line entry for each result row:
103  uint32 r(0);
104  DBResultRow row;
105  while(result.GetRow(row)) {
106  PyList *linedata = new PyList( cc );
107  for (r = 0; r < cc; ++r)
108  linedata->SetItem( r, DBColumnToPyRep(row, r) );
109  rowlist->AddItem(linedata);
110  }
111  args->SetItemString("lines", rowlist);
112 
113  return new PyObject( "util.Rowset" , args );
114 }
Python's dictionary.
Definition: PyRep.h:719
void SetItemString(size_t index, const char *str)
Stores Python string.
Definition: PyRep.h:699
void AddItem(PyRep *i)
Definition: PyRep.h:701
* args
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
Python object.
Definition: PyRep.h:826
uint32 ColumnCount() const
Definition: dbcore.h:76
void SetItem(size_t index, PyRep *object)
Stores Python object.
Definition: PyRep.h:682
const char * ColumnName(uint32 index) const
Definition: dbcore.cpp:569
unsigned __int32 uint32
Definition: eve-compat.h:50
Python token (eg. class name).
Definition: PyRep.h:522
Python list.
Definition: PyRep.h:639
void SetItemString(const char *key, PyRep *value)
SetItemString adds or sets a database entry.
Definition: PyRep.h:812
PyRep * DBColumnToPyRep(const DBResultRow &row, uint32 index)
Definition: EVEDBUtils.cpp:36

Here is the call graph for this function:

PyTuple* DBResultToTupleSet ( DBQueryResult result)

Definition at line 116 of file EVEDBUtils.cpp.

References DBQueryResult::ColumnCount(), DBQueryResult::ColumnName(), DBColumnToPyRep(), DBQueryResult::GetRow(), PyTuple::items, PyList::items, PyList::SetItem(), and PyList::SetItemString().

Referenced by ConfigDB::GetMultiAllianceShortNamesEx(), ConfigDB::GetMultiLocationsEx(), ConfigDB::GetMultiOwnersEx(), and ConfigDB::GetMultiStationEx().

116  {
117  uint32 cc = result.ColumnCount();
118  if(cc == 0)
119  return new PyTuple(0);
120 
121  PyTuple *res = new PyTuple(2);
122 
123  //list off the column names:
124  PyList *cols = new PyList(cc);
125  for(uint32 r(0); r < cc; ++r)
126  cols->SetItemString(r, result.ColumnName(r));
127  res->items[0] = cols;
128 
129  //add a line entry for each result row:
130  uint32 r(0);
131  DBResultRow row;
132  PyList *reslist = new PyList();
133  while(result.GetRow(row)) {
134  PyList *linedata = new PyList(cc);
135  for(r = 0; r < cc; ++r)
136  linedata->SetItem(r, DBColumnToPyRep(row, r));
137  reslist->items.push_back(linedata);
138  }
139  res->items[1] = reslist;
140 
141  return res;
142 }
void SetItemString(size_t index, const char *str)
Stores Python string.
Definition: PyRep.h:699
Python tuple.
Definition: PyRep.h:567
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
uint32 ColumnCount() const
Definition: dbcore.h:76
storage_type items
Definition: PyRep.h:708
void SetItem(size_t index, PyRep *object)
Stores Python object.
Definition: PyRep.h:682
const char * ColumnName(uint32 index) const
Definition: dbcore.cpp:569
unsigned __int32 uint32
Definition: eve-compat.h:50
storage_type items
Definition: PyRep.h:628
Python list.
Definition: PyRep.h:639
PyRep * DBColumnToPyRep(const DBResultRow &row, uint32 index)
Definition: EVEDBUtils.cpp:36

Here is the call graph for this function:

Here is the caller graph for this function:

void DBResultToUIntUIntDict ( DBQueryResult result,
std::map< uint32, uint32 > &  into 
)

Definition at line 479 of file EVEDBUtils.cpp.

References DBQueryResult::GetRow(), DBResultRow::GetUInt(), and DBResultRow::IsNull().

Referenced by ManagerDB::LoadCorpFactions(), ManagerDB::LoadFactionStationCounts(), and ManagerDB::LoadFactionSystemCounts().

479  {
480  //add a line entry for each result row:
481  DBResultRow row;
482  while(result.GetRow(row)) {
483  if(row.IsNull(0))
484  continue; //no working with NULL keys...
485  uint32 k = row.GetUInt(0);
486  uint32 v(0);
487  if(row.IsNull(1))
488  v = 0; //we can deal with assuming NULL == 0
489  else
490  v = row.GetUInt(1);
491  into[k] = v;
492  }
493 }
uint32 GetUInt(uint32 index) const
Definition: dbcore.cpp:658
bool GetRow(DBResultRow &into)
Definition: dbcore.cpp:552
bool IsNull(uint32 index) const
Definition: dbcore.h:102
unsigned __int32 uint32
Definition: eve-compat.h:50

Here is the call graph for this function:

Here is the caller graph for this function:

PyObject* DBRowToKeyVal ( DBResultRow row)

Definition at line 199 of file EVEDBUtils.cpp.

References args, DBResultRow::ColumnCount(), DBResultRow::ColumnName(), DBColumnToPyRep(), and PyDict::SetItemString().

Referenced by CharacterDB::GetCharPublicInfo(), CorporationDB::GetCorpInfo(), and CharacterDB::GetInfoWindowDataForChar().

199  {
200  PyDict *args = new PyDict();
201  uint32 cc = row.ColumnCount();
202  for( uint32 r(0); r < cc; ++r )
203  args->SetItemString( row.ColumnName(r), DBColumnToPyRep(row, r));
204 
205  return new PyObject( "util.KeyVal", args );
206 }
Python's dictionary.
Definition: PyRep.h:719
* args
Python object.
Definition: PyRep.h:826
const char * ColumnName(uint32 index) const
Definition: dbcore.h:114
unsigned __int32 uint32
Definition: eve-compat.h:50
uint32 ColumnCount() const
Definition: dbcore.h:113
void SetItemString(const char *key, PyRep *value)
SetItemString adds or sets a database entry.
Definition: PyRep.h:812
PyRep * DBColumnToPyRep(const DBResultRow &row, uint32 index)
Definition: EVEDBUtils.cpp:36

Here is the call graph for this function:

Here is the caller graph for this function:

PyPackedRow* DBRowToPackedRow ( DBResultRow row)

Definition at line 453 of file EVEDBUtils.cpp.

References CreatePackedRow().

Referenced by AllianceDB::GetAlliance(), CharacterDB::GetCharPrivateInfo(), CorporationDB::GetCorporations(), CorporationDB::GetMember(), MarketDB::GetOrderRow(), and SystemDB::GetSolarSystem().

454 {
455  DBRowDescriptor *header = new DBRowDescriptor( row );
456 
457  return CreatePackedRow( row, header );
458 }
Python object "blue.DBRowDescriptor".
Definition: PyDatabase.h:41
PyPackedRow * CreatePackedRow(const DBResultRow &row, DBRowDescriptor *header)
Definition: EVEDBUtils.cpp:299

Here is the call graph for this function:

Here is the caller graph for this function:

PyObject* DBRowToRow ( DBResultRow row,
const char *  type 
)

Definition at line 208 of file EVEDBUtils.cpp.

References args, DBResultRow::ColumnCount(), DBResultRow::ColumnName(), DBColumnToPyRep(), PyList::SetItem(), PyList::SetItemString(), and PyDict::SetItemString().

Referenced by DBResultToIntRowDict(), DBResultToRowList(), CorporationDB::GetCorporation(), ShipDB::GetInsuranceByShipID(), PaperDollDB::GetPaperDollAvatar(), and StationDB::GetStationOfficeIDs().

209 {
210  PyDict *args = new PyDict();
211 
212  //list off the column names:
213  uint32 cc = row.ColumnCount();
214  PyList *header = new PyList(cc);
215  for(uint32 r(0); r < cc; ++r)
216  header->SetItemString(r, row.ColumnName(r));
217 
218  args->SetItemString("header", header);
219 
220  //lines:
221  PyList *rowlist = new PyList(cc);
222  //add a line entry for the row:
223  for(uint32 r(0); r < cc; ++r)
224  rowlist->SetItem(r, DBColumnToPyRep(row, r));
225 
226  args->SetItemString("line", rowlist);
227 
228  return new PyObject( type, args );
229 }
Python's dictionary.
Definition: PyRep.h:719
void SetItemString(size_t index, const char *str)
Stores Python string.
Definition: PyRep.h:699
* args
Python object.
Definition: PyRep.h:826
void SetItem(size_t index, PyRep *object)
Stores Python object.
Definition: PyRep.h:682
const char * ColumnName(uint32 index) const
Definition: dbcore.h:114
unsigned __int32 uint32
Definition: eve-compat.h:50
uint32 ColumnCount() const
Definition: dbcore.h:113
Python list.
Definition: PyRep.h:639
void SetItemString(const char *key, PyRep *value)
SetItemString adds or sets a database entry.
Definition: PyRep.h:812
PyRep * DBColumnToPyRep(const DBResultRow &row, uint32 index)
Definition: EVEDBUtils.cpp:36

Here is the call graph for this function:

Here is the caller graph for this function:

void FillPackedRow ( const DBResultRow row,
PyPackedRow into 
)

Definition at line 292 of file EVEDBUtils.cpp.

References DBResultRow::ColumnCount(), DBColumnToPyRep(), and PyPackedRow::SetField().

Referenced by CreatePackedRow(), DBResultToCIndexedRowset(), and DBResultToCRowset().

293 {
294  uint32 cc = row.ColumnCount();
295  for( uint32 i(0); i < cc; ++i )
296  into->SetField( i, DBColumnToPyRep( row, i ) );
297 }
unsigned __int32 uint32
Definition: eve-compat.h:50
bool SetField(uint32 index, PyRep *value)
Definition: PyRep.cpp:1031
uint32 ColumnCount() const
Definition: dbcore.h:113
PyRep * DBColumnToPyRep(const DBResultRow &row, uint32 index)
Definition: EVEDBUtils.cpp:36

Here is the call graph for this function:

Here is the caller graph for this function: