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.

    DatabaseInfo.h

    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-&gt;DatabaseColumn;
            lCounter++;
        }
    }
    DatabaseColumns = DatabaseColumns + "|";
    //*pDatabaseColumns = lDatabaseColumns; //вот из-за этой строки ошыбка
    *pColumns = lColumns; 
    for (auto&amp; IColumns : lColumns)
    {
        cout &lt;&lt; IColumns.first &lt;&lt; "\t" &lt;&lt; IColumns.second &lt;&lt; endl;
    }
    

    }


Log in to reply
 

Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2