procedure TFrmMain.TreeViewEdited(Sender: TObject; Node: TTreeNode;
var S: String);
begin
if Node.Level = 0 then begin
QueryClass.SQL.Text:= 'UPDATE ClassName SET ClassName=:ClassNameValue '
+ 'WHERE ClassName = :OldClassName';
QueryText.SQL.Text := 'UPDATE DocData SET ClassName = :ClassNameValue '
+ 'WHERE ClassName = :OldClassName';//为什么不指定下面的的游标类型就会出错? QueryClass.ParamByName('OldClassName').DataType := ftstring;
QueryText.ParamByName('OldClassName').DataType := ftstring;
QueryClass.ParamByName('ClassNameValue').DataType := ftString;
QueryText.ParamByName('ClassNameValue').DataType := ftString;
QueryClass.ParamByName('ClassNameValue').AsString := s;
QueryClass.ParamByName('OldClassName').AsString := Node.Text;
QueryText.ParamByName('ClassNameValue').AsString := s;
QueryText.ParamByName('OldClassName').AsString := Node.Text; QueryClass.ExecSQL;
QueryText.ExecSQL;
end else begin//下面的为什么不用指定类型就不会出错? DM.QueryText.SQL.Text := 'UPDATE DocData '
+ 'SET DocName = :DocNameValue '
+ 'WHERE DocName = :OldDocName';
DM.QueryText.ParamByName('DocNameValue').AsString := s;
Dm.QueryText.ParamByName('OldDocName').AsString := Node.Text;
DM.QueryText.ExecSQL;
end;
end;
var S: String);
begin
if Node.Level = 0 then begin
QueryClass.SQL.Text:= 'UPDATE ClassName SET ClassName=:ClassNameValue '
+ 'WHERE ClassName = :OldClassName';
QueryText.SQL.Text := 'UPDATE DocData SET ClassName = :ClassNameValue '
+ 'WHERE ClassName = :OldClassName';//为什么不指定下面的的游标类型就会出错? QueryClass.ParamByName('OldClassName').DataType := ftstring;
QueryText.ParamByName('OldClassName').DataType := ftstring;
QueryClass.ParamByName('ClassNameValue').DataType := ftString;
QueryText.ParamByName('ClassNameValue').DataType := ftString;
QueryClass.ParamByName('ClassNameValue').AsString := s;
QueryClass.ParamByName('OldClassName').AsString := Node.Text;
QueryText.ParamByName('ClassNameValue').AsString := s;
QueryText.ParamByName('OldClassName').AsString := Node.Text; QueryClass.ExecSQL;
QueryText.ExecSQL;
end else begin//下面的为什么不用指定类型就不会出错? DM.QueryText.SQL.Text := 'UPDATE DocData '
+ 'SET DocName = :DocNameValue '
+ 'WHERE DocName = :OldDocName';
DM.QueryText.ParamByName('DocNameValue').AsString := s;
Dm.QueryText.ParamByName('OldDocName').AsString := Node.Text;
DM.QueryText.ExecSQL;
end;
end;
DM.QueryText.SQL.Text := 'UPDATE DocData '
+ 'SET DocName = :DocNameValue '
+ 'WHERE DocName = :OldDocName';这个 “= :”是什么意思啊?
但为什么问题中的有的又要设置呢?