Ferreteria/v0.6/clade/Sys/Data/Engine/schema/Ops/MyMar/@fx/DoExport: Difference between revisions
< Ferreteria | v0.6 | clade | Sys | Data | Engine | schema/Ops | MyMar
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
==About== | ==About== | ||
* '''General''': {{l/ver/fx}} | * '''General''': {{l/ver/fx}} | ||
* '''Mirror''': <code>[[../DoImport/]]()</code> | |||
* '''Calls''': | * '''Calls''': | ||
** <code>{{l/ver/clade/full|Sys\Data\Engine\Oper|MyMar}}::{{l/ver/clade/fx|Sys\Data\Engine\Oper|MyMar||DoExport}}()</code> | ** <code>{{l/ver/clade/full|Sys\Data\Engine\Oper|MyMar}}::{{l/ver/clade/fx|Sys\Data\Engine\Oper|MyMar||DoExport}}()</code> | ||
Latest revision as of 03:03, 3 December 2025
About
Code
#
// NOTE (2025-12-01): This and Ops\MyMar::DoExport() are *both* used.
public function DoExport(FileIface $ofData) : ActionIface {
$oScrn = self::Screen();
#echo $this->ReflectThis()->Report();
$fsData = $ofData->Ident()->SpecFull();
$oOper = $this->DbOper();
$sSchema = $this->SchemaName();
$ftSpec = $oScrn->GreenIt($fsData);
$ftName = $oScrn->BoldIt($oScrn->BlueIt($sSchema));
echo $oScrn->BoldIt(str_repeat('=',40)).CRLF;
echo "Exporting $ftName to $ftSpec: ".CRLF;
$ofMPair = MetaClass::FromDataSpec_wSchema($this,$fsData);
#$ofMPair = MetaClass::FromDataSpec($fsData);
#echo $ofMeta->DataFile()->ReflectThis()->Report();
$oaMeta = $ofMPair->InfoFile()->InOut()->OAData();
$oaMeta->DataFormat('SQL');
#echo "META (".$oaMeta->ObjectID().") PRESETS 1:".CRLF.$oaMeta->Inspect()->Render().CRLF;
$ofMPair->SaveStart();
// ++ OUTPUT FILE: open it for buffering
$oFile = FileClass::FromSpec($fsData);
$oExecBuff = new RecvBuffClass($oFile);
$oAct = $oExecBuff->Open();
// -- OUTPUT FILE
$oActBuff = NULL;
if ($oAct->GetOkay()) {
#echo $oOper->ReflectThis()->Report();
$oAct = $oOper->DoExport($sSchema,$oExecBuff);
$oAct->HandleResults();
#echo ' ' . ($oAct->GetOkay() ? $oScrn->GreenIt('Done.') : $oScrn->ErrorIt('Error:')) . CRLF;
} else {
$sMsg = $oScrn->ErrorIt('Error').': Could not open output buffer.'.CRLF.$oAct->GetStatusText().CRLF;
$oAct->AddMsgString($sMsg);
}
$oActBuff = $oExecBuff->Shut(); // displays final status report and closes the buffer
$ofMPair->SaveFinish($oAct);
echo $oAct->RenderMessages(); // should go *after* buffer->Shut() so final message is on same line as earlier ones
return $oAct;
}