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
(Created page with "{{page/fx}} ==About== * '''General''': {{l/ver/fx}} ==Code== ''as of {{fmt/date|2025|12|02}}:'' {{fmt/php/block|1=# // 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 =...") |
No edit summary |
||
| Line 2: | Line 2: | ||
==About== | ==About== | ||
* '''General''': {{l/ver/fx}} | * '''General''': {{l/ver/fx}} | ||
* '''Calls''': | |||
** <code>{{l/ver/clade/full|Sys\Data\Engine\Oper|MyMar}}::{{l/ver/clade/fx|Sys\Data\Engine\Oper|MyMar||DoExport}}()</code> | |||
==Code== | ==Code== | ||
''as of {{fmt/date|2025|12|02}}:'' | ''as of {{fmt/date|2025|12|02}}:'' | ||
Revision as of 02:59, 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;
}