douglaseccker
10/18/2018 - 1:07 PM

ODBC Select e Insert

OdbcConnection                  connection;
LoginProperty                   loginProp;
Statement                       statement;
ResultSet                       result;
SqlStatementExecutePermission   permission;
str                             sqlSelect;
str                             sqlStmt1;
str                             sqlStmt2;
str                             sqlStmt3;

InventTable                     inventTable;

utcDateTime fromDate          = DateTimeUtil::addDays(DateTimeUtil::utcNow(), -1);

loginProp = new LoginProperty();
loginProp.setOther(SantaClara_Utils::getConnectionStringPrimusTeste());

try
{
    connection = new OdbcConnection(loginProp);
}
catch
{
    error('You do not have access to the database specified');
    return;
}

sqlSelect = @"SELECT Id FROM axi.ProductNumberTable WHERE ProductNumber = %1;";

sqlStmt1 = @"INSERT INTO axi.ProductNumberTable (ProductNumber, Its_Cod) VALUES (%1, %2);";
sqlStmt2 = @"INSERT INTO axi.ItsCodTranslate (ItsCodPiv, ItsCodSec) VALUES (%1, %1);";
sqlStmt3 = @"INSERT INTO axi.ItsCodInventTranslate (ItsCodPiv, ItsCodSec) VALUES (%1, %1);";    

permission = new SqlStatementExecutePermission(sqlStmt1);
permission.assert();

statement = connection.createStatement();

while
select inventTable
where inventTable.createdDateTime >= fromDate || inventTable.modifiedDateTime >= fromDate
{
    result = statement.executeQuery(strFmt(sqlSelect, inventTable.ItemId));
    
    if (result.next())
    {
        continue;
    }
    
    statement.executeUpdate(strFmt(sqlStmt1, inventTable.ItemId, inventTable.PrimusId));
    statement.executeUpdate(strFmt(sqlStmt2, inventTable.PrimusId));
    statement.executeUpdate(strFmt(sqlStmt3, inventTable.PrimusId));
}

statement.close();

CodeAccessPermission::revertAssert();