SOL9 2.0 Sample: ADOXCreateTableApplet

SOL9 2.0 Samples

1 Screenshot


2 Source code

/*
 * ADOXCreateTableApplet.cpp 
 * Copyright (c) 2009 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL9
// 2009/06/03
// Assumes that environment of SQL Server 2008 and SQLClient1.0 or Access2007

#include <sol/sql/ADOXApplet.h>

namespace SOL {

class ADOXCreateTableApplet: public ADOXApplet {

public:
    /**
     * Constructor
     */
    ADOXCreateTableApplet(int argc, const TCHAR** argv)
        :ADOXApplet(argc, argv)
    {
    }

public:
    ~ADOXCreateTableApplet()
    {
    }


public:
    /**
     * ADOXCreateTableApplet main procedure
     */
    virtual void run()
    {
        String encoding = "";
        getXMLEncoding(encoding);

        printf("<?xml version=\"1.0\" encoding=\"%s\" ?>\n", (const TCHAR*)encoding);
        printf("<!-- \n");
        printf("1 Start\n");

        try {
            ADOXCatalog& catalog = getCatalog();
            printf("2 OK, getCatalog()\n");
            //dumpTables(catalog);

            ADOXTables beforeTables;
            catalog.getTables(beforeTables);
            
            _bstr_t tablename = "SolSoftware";

            long beforeCount = beforeTables.getCount();
            printf("3 OK, Before tables count = %ld\n", beforeCount);

            ADOXTables tables;
            catalog.getTables(tables);
            printf("4 OK, catalog.getTables()\n");

            ADOXTable table;
            table.createInstance();

            table.putName(tablename);
            table.appendColumn("ID", ADOX::adInteger, 0);
            table.appendColumn("Name",    ADOX::adVarChar, 255);
            table.appendColumn("Version", ADOX::adVarChar, 255);
            table.appendColumn("Company", ADOX::adVarChar, 255);
            table.appendColumn("Price",        ADOX::adInteger, 0);
            table.appendColumn("ReleasedDate", ADOX::adDBTimeStamp, 0);    //SQL datetime

            printf("5 OK, created a table: \"%s\"\n", (const char*)tablename);
    
            try {
                printf("6 Tryt to remove the new table from tables provided it already exists\n");

                beforeTables.remove(tablename);
                beforeTables.refresh();
                long afterRemovedCount = beforeTables.getCount();
                printf("7 OK, After removed tables count = %ld\n", afterRemovedCount);
    
            } catch (...) {
                ; //Ignore 
            }

            tables.append(table);
            printf("8 OK, appended a table \"%s\" tp tables\n", (const char*)tablename);

            ADOXTables afterTables;
            catalog.getTables(afterTables);
            

            long afterCount = afterTables.getCount();
            printf("9 OK After tables count = %ld\n", afterCount);

            ADOXTable foundTable;
            afterTables.find("SOLsoftWare", foundTable);
            printf("10 OK, afterTabels.find(\"%s\")\n", (const char*)tablename);


            printf("-->\n");

            foundTable.dump();

            printf("<!-- 11 Dumped foundTable=\"%s\" -->\n", (const char*)tablename);

        } catch (Exception& ex) {
            ex.dump();
        } catch (_com_error& ex) {
            COMError error(ex);
            error.dump();
        } catch (...) {
            printf("Exception: Unknown\n");
        }
    }
};

}

// Console application starts here.
void _tmain(int argc, const TCHAR** argv)
{
    try {
        ADOXCreateTableApplet applet(argc, argv);

        applet.start();

    } catch(Exception& ex){
        ex.dump();
    } catch(...){
        printf("Exception:Unknown\n");
    }
}


Last modified: 11 Nov 2009

Copyright (c) 2009 Antillia.com ALL RIGHTS RESERVED.