BUGFIX MigrateSiteTreeLinkingTask now takes a direct map when querying the page tracked links instead of looping through the direct result set. This fixes SQL Server failing when MARS (Multiple Active Result Sets) is disabled (from r110197)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@112835 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sam Minnee 2010-10-19 01:28:13 +00:00
parent 6e8bf5617a
commit 2f159ce93e

View File

@ -27,13 +27,10 @@ class MigrateSiteTreeLinkingTask extends BuildTask {
if($linkedPages) $linkedPages->removeDuplicates();
if($linkedPages) foreach($linkedPages as $page) {
$tracking = DB::query(sprintf (
'SELECT "ChildID", "FieldName" FROM "SiteTree_LinkTracking" WHERE "SiteTreeID" = %d',
$page->ID
));
foreach($tracking as $link) {
$linked = DataObject::get_by_id('SiteTree', $link['ChildID']);
$tracking = DB::query(sprintf('SELECT "ChildID", "FieldName" FROM "SiteTree_LinkTracking" WHERE "SiteTreeID" = %d', $page->ID))->map();
foreach($tracking as $childID => $fieldName) {
$linked = DataObject::get_by_id('SiteTree', $childID);
// TOOD: Replace in all HTMLText fields
$page->Content = preg_replace (
@ -48,8 +45,8 @@ class MigrateSiteTreeLinkingTask extends BuildTask {
$links += $replaced;
}
}
$page->write();
$page->write();
$pages++;
}