本人这几年都在一企业维护一个零售epr系统,用到两种工具 pb delphi1、pb就一个 datawindow 好用点其他就比较'烂',比如控件少得可以说是杯具...
  有次数据库改了一个字段,结果...一百几十个datawindow等着你一个个手工改,真是想起来都怕怕啊,居然没法批量改...2、pb代码中嵌入的sql不是说不好,但是也有很多限制,到最后也不见得比delphi中的拼sql字符+param好多少。例如delphi
//公共方法
function ExecSql(const sqlstr: AnsiString; const vparam: Variant): Integer;
var
  tmpCommand:TADOCommand;
begin
  Result:=0;
  tmpCommand:=TADOCommand.Create(nil);
  try
    with tmpCommand do
    begin
      Connection:=LocalConnection;
      CommandType := cmdText;
      CommandText:=sqlstr;
      tmpCommand.Execute(iResult,vParam);
    end;
  finally
    tmpCommand.Free;
  end;
end;
\\调用 i:=ExecSql('insert pictab (id,url,time,user) values (:id,:url,:time,:user)',VarArrayOf([OrderID ,PicAddr,now(),UserName]));3、pb中用户自定义报表不如delphi中的fastreport用户自定好用。
  很多时候我们拼接sql where子句出来一个结果集,想让用户自定义报表和打印格式,例如打商品格价牌,pb真是难以解决这个问题,结果我用delphi的fastreport写了个dll 让pb 调用 例如 procedure CsReport(row integer,col integer, cell string)把这个结果集一格一格地传进去fastreport里4、面向对象pb是个杯具...
  delphi中的抽像 多态 接口pb不是完全没有,但是很不好用,难怪有人说pb写的程序越大越难维护...5、多线程......pb又是个杯具
  例如pb调用一个操作时间较长的数据库procedure......整个用户介面卡停没响应,后来用delphi写了一个dll弹个窗口出来建一个线程调用一个动画让pb去调用...这才搞定6、pb 三层又一杯具,什么EAServer就算了,买不起,就用买得起用起来也超麻烦.
  还是用delphi + Remobject sdk 写了个三层,用于分店与服务器之下的数据实时上传、下载、同步用tcp联接,会员卡、储值卡信息读取用的是udp连接,写成Service级别,只要服务器一开机就自动上传下载同步分店与总部的数据了。一个字爽...7、pb中的pbl把程序模块分块很好用,delphi虽然也可以用bpl实现,但不如pb方便,这是pb比delphi好的地方,当然这也是动态语言的优点这是本人多年经验,大家请多多指教,欢迎骂街...