diff options
Diffstat (limited to 'trunk/adodb5/replicate/test-tnb.php')
| -rw-r--r-- | trunk/adodb5/replicate/test-tnb.php | 422 |
1 files changed, 0 insertions, 422 deletions
diff --git a/trunk/adodb5/replicate/test-tnb.php b/trunk/adodb5/replicate/test-tnb.php deleted file mode 100644 index 53489e2e..00000000 --- a/trunk/adodb5/replicate/test-tnb.php +++ /dev/null @@ -1,422 +0,0 @@ -<?php -include_once('../adodb.inc.php'); -include_once('adodb-replicate.inc.php'); - -set_time_limit(0); - -function IndexFilter($dtable, $idxname,$flds,$options) -{ - if (strlen($idxname) > 28) $idxname = substr($idxname,0,24).rand(1000,9999); - return $idxname; -} - -function SelFilter($table, &$arr, $delfirst) -{ - return true; -} - -function updatefilter($table, $fld, $val) -{ - return "nvl($fld, $val)"; -} - - -function FieldFilter(&$fld,$mode) -{ - $uf = strtoupper($fld); - switch($uf) { - case 'SIZEFLD': - return 'Size'; - - case 'GROUPFLD': - return 'Group'; - - case 'GROUP': - if ($mode == 'SELECT') $fld = '"Group"'; - return 'GroupFld'; - case 'SIZE': - if ($mode == 'SELECT') $fld = '"Size"'; - return 'SizeFld'; - } - return $fld; -} - -function ParseTable(&$table, &$pkey) -{ - $table = trim($table); - if (strlen($table) == 0) return false; - if (strpos($table, '#') !== false) { - $at = strpos($table, '#'); - $table = trim(substr($table,0,$at)); - if (strlen($table) == 0) return false; - } - - $tabarr = explode(',',$table); - if (sizeof($tabarr) == 1) { - $table = $tabarr[0]; - $pkey = ''; - echo "No primary key for $table **** **** <br>"; - } else { - $table = trim($tabarr[0]); - $pkey = trim($tabarr[1]); - if (strpos($pkey,' ') !== false) echo "Bad PKEY for $table $pkey<br>"; - } - - return true; -} - -global $TARR; - -function TableStats($rep, $table, $pkey) -{ -global $TARR; - - if (empty($TARR)) $TARR = array(); - $cnt = $rep->connSrc->GetOne("select count(*) from $table"); - if (isset($TARR[$table])) echo "<h1>Table $table repeated twice</h1>"; - $TARR[$table] = $cnt; - - if ($pkey) { - $ok = $rep->connSrc->SelectLimit("select $pkey from $table",1); - if (!$ok) echo "<h1>$table: $pkey does not exist</h1>"; - } else - echo "<h1>$table: no primary key</h1>"; -} - -function CreateTable($rep, $table) -{ -## CREATE TABLE - #$DB2->Execute("drop table $table"); - - $rep->execute = true; - $ok = $rep->CopyTableStruct($table); - if ($ok) echo "Table Created<br>\n"; - else { - echo "<hr>Error: Cannot Create Table<hr>\n"; - } - flush();@ob_flush(); -} - -function CopyData($rep, $table, $pkey) -{ - $dtable = $table; - - $rep->execute = true; - $rep->deleteFirst = true; - - $secs = time(); - $rows = $rep->ReplicateData($table,$dtable,array($pkey)); - $secs = time() - $secs; - if (!$rows || !$rows[0] || !$rows[1] || $rows[1] != $rows[2]+$rows[3]) { - echo "<hr>Error: "; var_dump($rows); echo " (secs=$secs) <hr>\n"; - } else - echo date('H:i:s'),': ',$rows[1]," record(s) copied, ",$rows[2]," inserted, ",$rows[3]," updated (secs=$secs)<br>\n"; - flush();@ob_flush(); -} - -function MergeDataJohnTest($rep, $table, $pkey) -{ - $rep->SwapDBs(); - - $dtable = $table; - $rep->oracleSequence = 'LGBSEQUENCE'; - -# $rep->MergeSrcSetup($table, array($pkey),'UpdatedOn','CopiedFlag'); - if (strpos($rep->connDest->databaseType,'mssql') !== false) { # oracle ==> mssql - $ignoreflds = array($pkey); - $ignoreflds[] = 'MSSQL_ID'; - $set = 'MSSQL_ID=nvl($INSERT_ID,MSSQL_ID)'; - $pkeyarr = array(array($pkey),false,array('MSSQL_ID'));# array('MSSQL_ID', 'ORA_ID')); - } else { # mssql ==> oracle - $ignoreflds = array($pkey); - $ignoreflds[] = 'ORA_ID'; - $set = ''; - #$set = 'ORA_ID=isnull($INSERT_ID,ORA_ID)'; - $pkeyarr = array(array($pkey),array('MSSQL_ID')); - } - $rep->execute = true; - #$rep->updateFirst = false; - $ok = $rep->Merge($table, $dtable, $pkeyarr, $ignoreflds, $set, 'UpdatedOn','CopiedFlag',array('Y','N','P','='), 'CopyDate'); - var_dump($ok); - - #$rep->connSrc->Execute("update JohnTest set name='Apple' where id=4"); -} - -$DB = ADONewConnection('odbtp'); -#$ok = $DB->Connect('localhost','root','','northwind'); -$ok = $DB->Connect('192.168.0.1','DRIVER={SQL Server};SERVER=(local);UID=sa;PWD=natsoft;DATABASE=OIR;','',''); -$DB->_bindInputArray = false; - -$DB2 = ADONewConnection('oci8'); -$ok2 = $DB2->Connect('192.168.0.2','tnb','natsoft','RAPTOR',''); - -if (!$ok || !$ok2) die("Failed connection DB=$ok DB2=$ok2<br>"); - -$tables = -" -JohnTest,id -"; - -# net* are ERMS, need last updated field from LGBnet -# tblRep* are tables insert or update from Juris, need last updated field also -# The rest are lookup tables, can copy all from LGBnet - -$tablesOrig = -" -SysVoltSubLevel,id -# Lookup table for Restoration Details screen -sysefi,ID # (not identity) -sysgenkva,ID #(not identity) -sysrestoredby,ID #(not identity) -# Sel* table added on 24 Oct -SELSGManufacturer,ID -SelABCCondSizeLV,ID -SelABCCondSizeMV,ID -SelArchingHornSize,ID -SelBallastSize,ID -SelBallastType,ID -SelBatteryType,ID #(not identity) -SelBreakerCapacity,ID -SelBreakerType,ID #(not identity) -SelCBreakerManuf,ID -SelCTRatio,ID #(not identity) -SelCableBrand,ID -SelCableSize,ID -SelCableSizeLV,ID # (not identity) -SelCapacitorSize,ID -SelCapacitorType,ID -SelColourCode,ID -SelCombineSealingChamberSize,ID -SelConductorBrand,ID -SelConductorSize4,ID -SelConductorSizeLV,ID -SelConductorSizeMV,ID -SelContactorSize,ID -SelContractor,ID -SelCoverType,ID -SelCraddleSize,ID -SelDeadEndClampBrand,ID -SelDeadEndClampSize,ID -SelDevTermination,ID -SelFPManuf,ID -SelFPillarRating,ID -SelFalseTrue,ID -SelFuseManuf,ID -SelFuseType,ID -SelIPCBrand,ID -SelIPCSize,ID -SelIgnitorSize,ID -SelIgnitorType,ID -SelInsulatorBrand,ID -SelJoint,ID -SelJointBrand,ID -SelJunctionBoxBrand,ID -SelLVBoardBrand,ID -SelLVBoardSize,ID -SelLVOHManuf,ID -SelLVVoltage,ID -SelLightningArresterBrand,ID -SelLightningShieldwireSize,ID -SelLineTapSize,ID -SelLocation,ID -SelMVVoltage,ID -SelMidSpanConnectorsSize,ID -SelMidSpanJointSize,ID -SelNERManuf,ID -SelNERType,ID -SelNLinkSize,ID -SelPVCCondSizeLV,ID -SelPoleBrand,ID -SelPoleConcreteSize,ID -SelPoleSize,ID -SelPoleSpunConcreteSize,ID -SelPoleSteelSize,ID -SelPoleType,ID -SelPoleWoodSize,ID -SelPorcelainFuseSize,ID -SelRatedFaultCurrentBreaker,ID -SelRatedVoltageSG,ID #(not identity) -SelRelayType,ID # (not identity) -SelResistanceValue,ID -SelSGEquipmentType,ID # (not identity) -SelSGInsulationType,ID # (not identity) -SelSGManufacturer,ID -SelStayInsulatorSize,ID -SelSuspensionClampBrand,ID -SelSuspensionClampSize,ID -SelTSwitchType,ID -SelTowerType,ID -SelTransformerCapacity,ID -SelTransformerManuf,ID -SelTransformerType,ID #(not identity) -SelTypeOfArchingHorn,ID -SelTypeOfCable,ID #(not identity) -SelTypeOfConductor,ID # (not identity) -SelTypeOfInsulationCB,ID # (not identity) -SelTypeOfMidSpanJoint,ID -SelTypeOfSTJoint,ID -SelTypeSTCable,ID -SelUGVoltage,ID # (not identity) -SelVoltageInOut,ID -SelWireSize,ID -SelWireType,ID -SelWonpieceBrand,ID -# -# Net* tables added on 24 Oct -NetArchingHorn,Idx -NetBatteryBank,Idx # identity, FunctLocation Pri -NetBiMetal,Idx -NetBoxFuse,Idx -NetCable,Idx # identity, FunctLocation Pri -NetCapacitorBank,Idx # identity, FunctLocation Pri -NetCircuitBreaker,Idx # identity, FunctLocation Pri -NetCombineSealingChamber,Idx -NetCommunication,Idx -NetCompInfras,Idx -NetControl,Idx -NetCraddle,Idx -NetDeadEndClamp,Idx -NetEarthing,Idx -NetFaultIndicator,Idx -NetFeederPillar,Idx # identity, FunctLocation Pri -NetGenCable,Idx # identity , FunctLocation Not Null -NetGenerator,Idx -NetGrid,Idx -NetHVOverhead,Idx #identity, FunctLocation Pri -NetHVUnderground,Idx #identity, FunctLocation Pri -NetIPC,Idx -NetInductorBank,Idx -NetInsulator,Idx -NetJoint,Idx -NetJunctionBox,Idx -NetLVDB,Idx #identity, FunctLocation Pri -NetLVOverhead,Idx -NetLVUnderground,Idx # identity, FunctLocation Not Null -NetLightningArrester,Idx -NetLineTap,Idx -NetMidSpanConnectors,Idx -NetMidSpanJoint,Idx -NetNER,Idx # identity , FunctLocation Pri -NetOilPump,Idx -NetOtherComponent,Idx -NetPole,Idx -NetRMU,Idx # identity, FunctLocation Pri -NetStreetLight,Idx -NetStrucSupp,Idx -NetSuspensionClamp,Idx -NetSwitchGear,Idx # identity, FunctLocation Pri -NetTermination,Idx -NetTransition,Idx -NetWonpiece,Idx -# -# comment1 -SelMVFuseType,ID -selFuseSize,ID -netRelay,Idx # identity, FunctLocation Pri -SysListVolt,ID -sysVoltLevel,ID_SVL -sysRestoration,ID_SRE -sysRepairMethod,ID_SRM # (not identity) - -sysInterruptionType,ID_SIN -netTransformer,Idx # identity, FunctLocation Pri -# -# -sysComponent,ID_SC -sysCodecibs #-- no idea, UpdatedOn(the only column is unique),Ermscode,Cibscode is unique but got null value -sysCodeno,id -sysProtection,ID_SP -sysEquipment,ID_SEQ -sysAddress #-- no idea, ID_SAD(might be auto gen No) -sysWeather,ID_SW -sysEnvironment,ID_SE -sysPhase,ID_SPH -sysFailureCause,ID_SFC -sysFailureMode,ID_SFM -SysSchOutageMode,ID_SSM -SysOutageType,ID_SOT -SysInstallation,ID_SI -SysInstallationCat,ID_SIC -SysInstallationType,ID_SIT -SysFaultCategory,ID_SF #(not identity) -SysResponsible,ID_SR -SysProtectionOperation,ID_SPO #(not identity) -netCodename,CodeNo #(not identity) -netSubstation,Idx #identity, FunctLocation Pri -netLvFeeder,Idx # identity, FunctLocation Pri -# -# -tblReport,ReportNo -tblRepRestoration,ID_RR -tblRepResdetail,ID_RRD -tblRepFailureMode,ID_RFM -tblRepFailureCause,ID_RFC -tblRepRepairMethod,ReportNo # (not identity) -tblInterruptionType,ID_TIN -tblProtType,ID_PT #--capital letter -tblRepProtection,ID_RP -tblRepComponent,ID_RC -tblRepWeather,ID_RW -tblRepEnvironment,ID_RE -tblRepSubstation,ID_RSS -tblInstallationType,ID_TIT -tblInstallationCat,ID_TIC -tblFailureCause,ID_TFC -tblFailureMode,ID_TFM -tblProtection,ID_TP -tblComponent,ID_TC -tblProtdetail,Id # (Id)--capital letter for I -tblInstallation,ID_TI -# -"; - - -$tables = explode("\n",$tables); - -$rep = new ADODB_Replicate($DB,$DB2); -$rep->fieldFilter = 'FieldFilter'; -$rep->selFilter = 'SELFILTER'; -$rep->indexFilter = 'IndexFilter'; - -if (1) { - $rep->debug = 1; - $DB->debug=1; - $DB2->debug=1; -} - -# $rep->SwapDBs(); - -$cnt = sizeof($tables); -foreach($tables as $k => $table) { - $pkey = ''; - if (!ParseTable($table, $pkey)) continue; - - ####################### - - $kcnt = $k+1; - echo "<h1>($kcnt/$cnt) $table -- $pkey</h1>\n"; - flush();@ob_flush(); - - CreateTable($rep,$table); - - - # COPY DATA - - - TableStats($rep, $table, $pkey); - - if ($table == 'JohnTest') MergeDataJohnTest($rep, $table, $pkey); - else CopyData($rep, $table, $pkey); - -} - - -if (!empty($TARR)) { - ksort($TARR); - adodb_pr($TARR); - asort($TARR); - adodb_pr($TARR); -} - -echo "<hr>",date('H:i:s'),": Done</hr>"; -?>
\ No newline at end of file |
