From 42f0baae8fb39be2dd7a4c5c377f23c3f56fc865 Mon Sep 17 00:00:00 2001
From: xue <>
Date: Tue, 17 Jul 2007 17:56:10 +0000
Subject: Fixed #666.

---
 HISTORY                                       | 1 +
 framework/Data/ActiveRecord/TActiveRecord.php | 2 +-
 framework/Data/Common/TDbCommandBuilder.php   | 4 +++-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/HISTORY b/HISTORY
index d14d196b..31680e59 100644
--- a/HISTORY
+++ b/HISTORY
@@ -2,6 +2,7 @@ Version 3.1.1 To be released
 ============================
 BUG: Ticket#656 - TDatePicker does not return correct value when in callback mode (Christophe)
 BUG: Ticket#662 - Ensure TForm to properly encode the ampersand in action URL (Qiang)
+BUG: Ticket#666 - TActiveRecord::deleteAll() method always requires a criteria or null parameter (Qiang)
 BUG: Ticket#670 - TDatePicker: Year Issue (Christophe)
 ENH: Ticket#667 - Added TFeedService.ContentType property (Qiang)
 ENH: Added THead requirement check (Qiang)
diff --git a/framework/Data/ActiveRecord/TActiveRecord.php b/framework/Data/ActiveRecord/TActiveRecord.php
index b6b19d13..b7ccaa50 100644
--- a/framework/Data/ActiveRecord/TActiveRecord.php
+++ b/framework/Data/ActiveRecord/TActiveRecord.php
@@ -304,7 +304,7 @@ abstract class TActiveRecord extends TComponent
 	 * @param mixed parameter values.
 	 * @return int number of records deleted.
 	 */
-	public function deleteAll($criteria, $parameters=array())
+	public function deleteAll($criteria=null, $parameters=array())
 	{
 		$args = func_num_args() > 1 ? array_slice(func_get_args(),1) : null;
 		$criteria = $this->getCriteria($criteria,$parameters, $args);
diff --git a/framework/Data/Common/TDbCommandBuilder.php b/framework/Data/Common/TDbCommandBuilder.php
index 0d960c8d..0029b4c3 100644
--- a/framework/Data/Common/TDbCommandBuilder.php
+++ b/framework/Data/Common/TDbCommandBuilder.php
@@ -203,7 +203,9 @@ class TDbCommandBuilder extends TComponent
 	public function createDeleteCommand($where,$parameters=array())
 	{
 		$table = $this->getTableInfo()->getTableFullName();
-		$command = $this->createCommand("DELETE FROM {$table} WHERE {$where}");
+		if (!empty($where))
+			$where = 'WHERE '.$where;
+		$command = $this->createCommand("DELETE FROM {$table} ".$where);
 		$this->bindArrayValues($command, $parameters);
 		return $command;
 	}
-- 
cgit v1.2.3