Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Debug Assertion

Debug Assertion

Scheduled Pinned Locked Moved C / C++ / MFC
c++databasemysqlsysadmindebugging
16 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    Davitor
    wrote on last edited by
    #1

    Hi All I am geting debug assertion failed Line 3232 in file dbcore.cpp.Code is here

    Database database;
    try
    {
    if(database.OpenEx(_T("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=;User=root; Password=root;Option=3;"), CDatabase::noOdbcDialog))
    {
    AfxMessageBox("Connection Successfully");

    		CString szSql = "SHOW DATABASES";
    

    CRecordset rs(&database);
    rs.Open( CRecordset::forwardOnly, szSql);

    while (!rs.IsEOF())
    {
    CString szBuf;

    rs.GetFieldValue("DATABASE", szBuf);

    rs.MoveNext();
    }

    rs.Close();

    	}
    }
    catch(CException \*e)
    {
    AfxMessageBox("Connection Failed");	
    }
    

    i am geting assertion in this line

    rs.Open( CRecordset::forwardOnly, szSql);
    Debug assertion failed Line 3232 in file dbcore.cpp.

    I see line 3232 in dbcore.cpp file.There i found this syntax

    ASSERT(m_nFields != 0);

    Can any one tell how can i solve that debug assertion. Plz help me

    M _ S 3 Replies Last reply
    0
    • D Davitor

      Hi All I am geting debug assertion failed Line 3232 in file dbcore.cpp.Code is here

      Database database;
      try
      {
      if(database.OpenEx(_T("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=;User=root; Password=root;Option=3;"), CDatabase::noOdbcDialog))
      {
      AfxMessageBox("Connection Successfully");

      		CString szSql = "SHOW DATABASES";
      

      CRecordset rs(&database);
      rs.Open( CRecordset::forwardOnly, szSql);

      while (!rs.IsEOF())
      {
      CString szBuf;

      rs.GetFieldValue("DATABASE", szBuf);

      rs.MoveNext();
      }

      rs.Close();

      	}
      }
      catch(CException \*e)
      {
      AfxMessageBox("Connection Failed");	
      }
      

      i am geting assertion in this line

      rs.Open( CRecordset::forwardOnly, szSql);
      Debug assertion failed Line 3232 in file dbcore.cpp.

      I see line 3232 in dbcore.cpp file.There i found this syntax

      ASSERT(m_nFields != 0);

      Can any one tell how can i solve that debug assertion. Plz help me

      M Offline
      M Offline
      Madhu Nair 0
      wrote on last edited by
      #2

      Use CDBException to catch the error in your database code

      D 1 Reply Last reply
      0
      • D Davitor

        Hi All I am geting debug assertion failed Line 3232 in file dbcore.cpp.Code is here

        Database database;
        try
        {
        if(database.OpenEx(_T("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=;User=root; Password=root;Option=3;"), CDatabase::noOdbcDialog))
        {
        AfxMessageBox("Connection Successfully");

        		CString szSql = "SHOW DATABASES";
        

        CRecordset rs(&database);
        rs.Open( CRecordset::forwardOnly, szSql);

        while (!rs.IsEOF())
        {
        CString szBuf;

        rs.GetFieldValue("DATABASE", szBuf);

        rs.MoveNext();
        }

        rs.Close();

        	}
        }
        catch(CException \*e)
        {
        AfxMessageBox("Connection Failed");	
        }
        

        i am geting assertion in this line

        rs.Open( CRecordset::forwardOnly, szSql);
        Debug assertion failed Line 3232 in file dbcore.cpp.

        I see line 3232 in dbcore.cpp file.There i found this syntax

        ASSERT(m_nFields != 0);

        Can any one tell how can i solve that debug assertion. Plz help me

        _ Offline
        _ Offline
        _Superman_
        wrote on last edited by
        #3

        Your query didn't have any output fields. Probably something wrong with the query.

        «_Superman_» I love work. It gives me something to do between weekends.

        D 1 Reply Last reply
        0
        • M Madhu Nair 0

          Use CDBException to catch the error in your database code

          D Offline
          D Offline
          Davitor
          wrote on last edited by
          #4

          Thanks for reply. I use CDBException class for catch the error.But it's showing same Assertion.

          1 Reply Last reply
          0
          • _ _Superman_

            Your query didn't have any output fields. Probably something wrong with the query.

            «_Superman_» I love work. It gives me something to do between weekends.

            D Offline
            D Offline
            Davitor
            wrote on last edited by
            #5

            Ok but same query i have check in mysql,then it's working fine.If you have any more query then plz give me.

            C 1 Reply Last reply
            0
            • D Davitor

              Ok but same query i have check in mysql,then it's working fine.If you have any more query then plz give me.

              C Offline
              C Offline
              CPallini
              wrote on last edited by
              #6

              See if this [^] helps. :)

              If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
              This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
              [My articles]

              D 1 Reply Last reply
              0
              • C CPallini

                See if this [^] helps. :)

                If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                [My articles]

                D Offline
                D Offline
                Davitor
                wrote on last edited by
                #7

                Hi CPallini Thanks for reply.may i know where is concept of my question in your post?Plz help me

                C 1 Reply Last reply
                0
                • D Davitor

                  Hi CPallini Thanks for reply.may i know where is concept of my question in your post?Plz help me

                  C Offline
                  C Offline
                  CPallini
                  wrote on last edited by
                  #8

                  It looks like you've to change the flag "Ignore # in table name" in your ODBC driver in order to make the statement 'SHOW DATABASES' work. :)

                  If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                  This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                  [My articles]

                  D 1 Reply Last reply
                  0
                  • C CPallini

                    It looks like you've to change the flag "Ignore # in table name" in your ODBC driver in order to make the statement 'SHOW DATABASES' work. :)

                    If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                    This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                    [My articles]

                    D Offline
                    D Offline
                    Davitor
                    wrote on last edited by
                    #9

                    So i change

                    CString szSql = "SHOW DATABASES"; to this
                    szSql = "SHOW DATABASES from mysql",

                    or

                    rs.Open( CRecordset::forwardOnly, szSql); to this
                    rs.Open( _T("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=;User=root; Password=root;Option=3;"),szSql,CRecordset::forwardOnly);

                    Both are givesame debug assertion. Plz help me

                    1 Reply Last reply
                    0
                    • D Davitor

                      Hi All I am geting debug assertion failed Line 3232 in file dbcore.cpp.Code is here

                      Database database;
                      try
                      {
                      if(database.OpenEx(_T("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=;User=root; Password=root;Option=3;"), CDatabase::noOdbcDialog))
                      {
                      AfxMessageBox("Connection Successfully");

                      		CString szSql = "SHOW DATABASES";
                      

                      CRecordset rs(&database);
                      rs.Open( CRecordset::forwardOnly, szSql);

                      while (!rs.IsEOF())
                      {
                      CString szBuf;

                      rs.GetFieldValue("DATABASE", szBuf);

                      rs.MoveNext();
                      }

                      rs.Close();

                      	}
                      }
                      catch(CException \*e)
                      {
                      AfxMessageBox("Connection Failed");	
                      }
                      

                      i am geting assertion in this line

                      rs.Open( CRecordset::forwardOnly, szSql);
                      Debug assertion failed Line 3232 in file dbcore.cpp.

                      I see line 3232 in dbcore.cpp file.There i found this syntax

                      ASSERT(m_nFields != 0);

                      Can any one tell how can i solve that debug assertion. Plz help me

                      S Offline
                      S Offline
                      Stuart Dootson
                      wrote on last edited by
                      #10

                      Ummmmm - "SHOW DATABASES" isn't SQL? It IS a MySQL command - but that doesn't necessarily make it something you can execute using ODBC?

                      Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p

                      D 1 Reply Last reply
                      0
                      • S Stuart Dootson

                        Ummmmm - "SHOW DATABASES" isn't SQL? It IS a MySQL command - but that doesn't necessarily make it something you can execute using ODBC?

                        Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p

                        D Offline
                        D Offline
                        Davitor
                        wrote on last edited by
                        #11

                        yaa i know "SHOW DATABASE" is Mysql command and i am useing for MySql.Can you tell how and which command is execute for SHOW DATABASE useing ODBC? Plz help me

                        C S 2 Replies Last reply
                        0
                        • D Davitor

                          yaa i know "SHOW DATABASE" is Mysql command and i am useing for MySql.Can you tell how and which command is execute for SHOW DATABASE useing ODBC? Plz help me

                          C Offline
                          C Offline
                          CPallini
                          wrote on last edited by
                          #12

                          You may try 'SHOW SCHEMA', it looks like more 'SQL standard'. :)

                          If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                          This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                          [My articles]

                          1 Reply Last reply
                          0
                          • D Davitor

                            yaa i know "SHOW DATABASE" is Mysql command and i am useing for MySql.Can you tell how and which command is execute for SHOW DATABASE useing ODBC? Plz help me

                            S Offline
                            S Offline
                            Stuart Dootson
                            wrote on last edited by
                            #13

                            Don't think you can use CRecordset - I don't think it lets you execute arbitrary commands. You could use CDatabase::ExecuteSQL - but that doesn't return any results. You can use ODBC to execute that command - here's how you'd do it in Python

                            import dbi
                            import odbc
                            conn = odbc.odbc("Driver={MySQL ODBC 5.1 Driver}; Server=localhost; Database=; User=root; Password=password; Option=3;")
                            curs = conn.cursor()
                            curs.execute("SHOW DATABASES")
                            curs.fetchall()

                            results in something like this

                            [('information_schema',), ('mysql',), ('test',)]

                            Here's how you could do it in C++ with ADO:

                            #import "libid:2A75196C-D9EB-4129-B803-931327F72D5C" rename("EOF", "adoEOF")

                            int main()
                            {
                            CoInitialize(0);
                            ADODB::_ConnectionPtr conn(__uuidof(ADODB::Connection));
                            conn->Open(_bstr_t("Driver={MySQL ODBC 5.1 Driver}; Server=localhost; Database=; User=root; Password=password; Option=3;"), "", "", 0);
                            ADODB::_RecordsetPtr rs = conn->Execute(_bstr_t("SHOW DATABASES"), 0, ADODB::adCmdText);

                            _variant_t databaseNames = rs->GetRows(ADODB::adGetRowsRest);
                            }

                            databaseNames is a SAFEARRAY containing BSTR elements, one for each database name.


                            Last modified: 3hrs 14mins after originally posted --

                            Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p

                            D 2 Replies Last reply
                            0
                            • S Stuart Dootson

                              Don't think you can use CRecordset - I don't think it lets you execute arbitrary commands. You could use CDatabase::ExecuteSQL - but that doesn't return any results. You can use ODBC to execute that command - here's how you'd do it in Python

                              import dbi
                              import odbc
                              conn = odbc.odbc("Driver={MySQL ODBC 5.1 Driver}; Server=localhost; Database=; User=root; Password=password; Option=3;")
                              curs = conn.cursor()
                              curs.execute("SHOW DATABASES")
                              curs.fetchall()

                              results in something like this

                              [('information_schema',), ('mysql',), ('test',)]

                              Here's how you could do it in C++ with ADO:

                              #import "libid:2A75196C-D9EB-4129-B803-931327F72D5C" rename("EOF", "adoEOF")

                              int main()
                              {
                              CoInitialize(0);
                              ADODB::_ConnectionPtr conn(__uuidof(ADODB::Connection));
                              conn->Open(_bstr_t("Driver={MySQL ODBC 5.1 Driver}; Server=localhost; Database=; User=root; Password=password; Option=3;"), "", "", 0);
                              ADODB::_RecordsetPtr rs = conn->Execute(_bstr_t("SHOW DATABASES"), 0, ADODB::adCmdText);

                              _variant_t databaseNames = rs->GetRows(ADODB::adGetRowsRest);
                              }

                              databaseNames is a SAFEARRAY containing BSTR elements, one for each database name.


                              Last modified: 3hrs 14mins after originally posted --

                              Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p

                              D Offline
                              D Offline
                              Davitor
                              wrote on last edited by
                              #14

                              Thanks

                              1 Reply Last reply
                              0
                              • S Stuart Dootson

                                Don't think you can use CRecordset - I don't think it lets you execute arbitrary commands. You could use CDatabase::ExecuteSQL - but that doesn't return any results. You can use ODBC to execute that command - here's how you'd do it in Python

                                import dbi
                                import odbc
                                conn = odbc.odbc("Driver={MySQL ODBC 5.1 Driver}; Server=localhost; Database=; User=root; Password=password; Option=3;")
                                curs = conn.cursor()
                                curs.execute("SHOW DATABASES")
                                curs.fetchall()

                                results in something like this

                                [('information_schema',), ('mysql',), ('test',)]

                                Here's how you could do it in C++ with ADO:

                                #import "libid:2A75196C-D9EB-4129-B803-931327F72D5C" rename("EOF", "adoEOF")

                                int main()
                                {
                                CoInitialize(0);
                                ADODB::_ConnectionPtr conn(__uuidof(ADODB::Connection));
                                conn->Open(_bstr_t("Driver={MySQL ODBC 5.1 Driver}; Server=localhost; Database=; User=root; Password=password; Option=3;"), "", "", 0);
                                ADODB::_RecordsetPtr rs = conn->Execute(_bstr_t("SHOW DATABASES"), 0, ADODB::adCmdText);

                                _variant_t databaseNames = rs->GetRows(ADODB::adGetRowsRest);
                                }

                                databaseNames is a SAFEARRAY containing BSTR elements, one for each database name.


                                Last modified: 3hrs 14mins after originally posted --

                                Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p

                                D Offline
                                D Offline
                                Davitor
                                wrote on last edited by
                                #15

                                Hi Stuart Dootson This things is working fine.But i need to use "Select * from Tablename".Show how can i get full information of table in

                                _variant_t.

                                Plz help me

                                S 1 Reply Last reply
                                0
                                • D Davitor

                                  Hi Stuart Dootson This things is working fine.But i need to use "Select * from Tablename".Show how can i get full information of table in

                                  _variant_t.

                                  Plz help me

                                  S Offline
                                  S Offline
                                  Stuart Dootson
                                  wrote on last edited by
                                  #16

                                  It's not too difficult to find[^] appropriate examples[^] on t'Internet.

                                  Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • World
                                  • Users
                                  • Groups