An example of how to create and insert into a multi-table Hyper file with different column types.
#include <iostream>
#include <string>
{
}};
{
}};
{
}};
static void runInsertDataIntoMultipleTables() {
std::cout << "EXAMPLE - Insert data into multiple tables within a new Hyper file" << std::endl;
const std::string pathToDatabase = "data/superstore.hyper";
{
{
catalog.createTable(customerTable);
catalog.createTable(productTable);
catalog.createTable(lineItemsTable);
{
inserter.addRow(static_cast<int16_t>(399),
"DK-13375",
hyperapi::Date{2012, 9, 7},
"CA-2011-100006",
hyperapi::Date{2012, 9, 13},
"Standard Class");
inserter.addRow(static_cast<int16_t>(530),
"EB-13705",
hyperapi::Date{2012, 7, 8},
"CA-2011-100090",
hyperapi::Date{2012, 7, 12},
"Standard Class");
inserter.execute();
}
{
inserter.addRow("DK-13375", "Dennis Kane", 518, "Consumer");
inserter.addRow("EB-13705", "Ed Braxton", 815, "Corporate");
inserter.execute();
}
{
inserter.addRow("TEC-PH-10002075", "Technology", "Phones", "AT&T EL51110 DECT");
inserter.execute();
}
{
inserter.addRow(2718, "CA-2011-100006", "TEC-PH-10002075", 377.97, int16_t{3}, 0.0, 109.6113);
inserter.addRow(2719, "CA-2011-100090", "TEC-PH-10002075", 377.97, int16_t{3}, hyperapi::null, 109.6113);
inserter.execute();
}
for (auto& tableName : {ordersTable.getTableName(), customerTable.getTableName(), productTable.getTableName(), lineItemsTable.getTableName()}) {
int64_t rowCount = connection.executeScalarQuery<int64_t>("SELECT COUNT(*) FROM " + tableName.toString());
std::cout << "The number of rows in table " << tableName << " is " << rowCount << "." << std::endl;
}
}
std::cout << "The connection to the Hyper file has been closed." << std::endl;
}
std::cout << "The Hyper Process has been shut down." << std::endl;
}
int main() {
try {
runInsertDataIntoMultipleTables();
return 1;
}
return 0;
}