質問です。
WinXP SP2 + Apache2 + php5.2.3 + adodb V4.94
+ mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
でInnoDBな環境なのですが、
データを追加した後、
トランザクションを開始してデータ更新、コミットした後
さらにtruncate tableを実行するとなぜかエラーになってしまい困惑しております。

具体的には以下のコマンドを発行して最後のtruncateでエラーが発生します。

insert into `foo` (id, c1, c2) values (null, 2, 3);
select last_insert_id(); -- id = 1
set autocommit=0; -- adodb->SmartTrans();
begin;
select * from `foo` where `id`=1 for update;
insert into `backup_foo` (bid, id, c1, c2) values(null, 1, 2, 3);
update `foo` set id=1, c1=4, c2=6 where id=1;
commit; -- adodb->CompleteTrans();
set autocommit=1;
truncate table `foo`; -- ここでエラー
-- "ERROR: Can't execute the given command because you have active locked tables or an active transaction"

DOSプロンプトのmysqlフロントエンドから同じようにしても問題がないので、
adodbの問題だと思ったのでバージョンを最新の4.97にあげたら直りました。
本当にありがとうございました。