An example of how to create and insert into a multi-table Hyper file with different column types.
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";
{
{
{
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;
}
The catalog class gives access to the metadata of the attached databases of a connection.
void createTable(const hyperapi::TableDefinition &table_definition) const
Creates a SQL table with the given table definition.
Defines a Hyper connection.
Defines an exception object that is thrown on failure by the functions in the Hyper API C++ library.
std::string toString() const
Returns a formatted string containing the message and hint of the error and all causes.
static SqlType smallInt() noexcept
Returns the SMALL INTEGER SQL type.
static SqlType bigInt() noexcept
Returns the BIG INTEGER SQL type.
static SqlType text() noexcept
Returns the TEXT SQL type.
static SqlType date() noexcept
Returns the DATE SQL type.
static SqlType doublePrecision() noexcept
Returns the DOUBLE PRECISION SQL type.
A Column of a table definition.
The main header of the Hyper API for C++.
@ NotNullable
The column cannot contain NULL values.
@ Nullable
The column can contain NULL values.
@ SendUsageDataToTableau
Telemetry data will be sent to tableau to help improve the Hyper API.
@ CreateAndReplace
Create the database. If it already exists, drop the old one first.