I'm working on the SQL analogue in C+++ There's been an exception: a violation of reading rights...Pnext, although the data are recorded normally.
-
void FindAllDatabaseColumns_1(const DatabaseInfo& pDatabaseInfo, string pDatabaseName, map<int, string>* pColumns, DatabaseInfo* pDatabaseColumns) { string DatabaseColumns = ""; map<int, string> lColumns; int lCounter = 1; DatabaseInfo lDatabaseColumns; lDatabaseColumns = *pDatabaseColumns; for (const Knot* p = pDatabaseInfo.begin(); p != NULL; p = p->next) { if (p->DatabaseName == pDatabaseName) { lColumns.insert(make_pair(lCounter, p->DatabaseColumn)); lDatabaseColumns.AddColumn(p->DatabaseName, p->DatabaseColumn, p->ColumnTypeOfData); DatabaseColumns = DatabaseColumns + "|" + p->DatabaseColumn; lCounter++; } } DatabaseColumns = DatabaseColumns + "|"; *pDatabaseColumns = lDatabaseColumns; *pColumns = lColumns; for (auto& IColumns : lColumns) { cout << IColumns.first << "\t" << IColumns.second << endl; } }
My class is where it says
DatabaseInfo
Honestly, there's a lot of code, but it's on the prototype list. Here. header class can help. ♪ ♪If I have to, I can download the rest of the project code.
That's a mistake.
Honestly, it would be interesting to know why he made a mistake to do everything right and understand the work. C++!
-
The question's up. You should have used:
pDatabaseColumns->AddColumn(p->DatabaseName, p->DatabaseColumn, p->ColumnTypeOfData);
and:
*pDatabaseColumns = lDatabaseColumns;
and records
lDatabaseColumns
♪void FindAllDatabaseColumns_1(const DatabaseInfo& pDatabaseInfo, string pDatabaseName, map<int, string>* pColumns, DatabaseInfo *pDatabaseColumns) { string DatabaseColumns = ""; map<int, string> lColumns; int lCounter = 1; DatabaseInfo lDatabaseColumns; //lDatabaseColumns = *pDatabaseColumns; //и возможно из-за этой for (const Node* p = pDatabaseInfo.begin(); p != NULL; p = p->next) { if (p->DatabaseName == pDatabaseName) { lColumns.insert(make_pair(lCounter, p->DatabaseColumn)); //lDatabaseColumns.AddColumn(p->DatabaseName, p->DatabaseColumn, p->ColumnTypeOfData); pDatabaseColumns->AddColumn(p->DatabaseName, p->DatabaseColumn, p->ColumnTypeOfData);
DatabaseColumns = DatabaseColumns + "|" + p->DatabaseColumn; lCounter++; } } DatabaseColumns = DatabaseColumns + "|"; //*pDatabaseColumns = lDatabaseColumns; //вот из-за этой строки ошыбка *pColumns = lColumns; for (auto& IColumns : lColumns) { cout << IColumns.first << "\t" << IColumns.second << endl; }
}