执行下面语句后,程序显示%错报错,请教如何改

执行下面语句后,程序显示%错报错,请问怎么改。
procedure TForm1.TreeView1Click(Sender: TObject);
var
  Node: TTreeNode;
  Pn: TPoint;
  StrSQL,str:string;
begin
  GetCursorPos(Pn);
  Pn := TreeView1.ScreenToClient(Pn);
  Node := TreeView1.GetNodeAt(Pn.X, Pn.Y);
  if not Assigned(Node) then
    exit;
  Sjb := Node.Text;
  Edit2.Text := '';
  Flag := 0;
  Xnode := node.level;
  Edit1.Text := Node.Text;
  ADOQuery1.Close;
  ADOQuery1.SQL.Text := 'Select * from Tree Where 节点名称 =''' + Node.Text + '''';
  ADOQuery1.Open;
  if ADOQuery1.RecordCount > 0 then
    Snode := ADOQuery1.FieldByName('本级节点号').asinteger;
    if Xnode=2 then
    begin
    ClientDataSet1.Close;
    str:=''' +edit1.Text+ ''';
    StrSQL:='select * from Input Where 变电站名 like str%';
    ClientDataSet1.CommandText:=StrSQL;
    ClientDataSet1.Open;
    end;
    if Xnode=3 then
    begin
    ClientDataSet1.Close;
    StrSQL:='select * from Input Where 变电站名 = ''' + Node.Text+ '''';
    ClientDataSet1.CommandText:=StrSQL;
    ClientDataSet1.Open;
    end;
end;
------解决思路----------------------
StrSQL:='select * from Input Where 变电站名 like '+QuotedStr(str+'%');