今年最近这个项目才转到.net上的,pb.net不说了,太多的bug,不过这个项目既然已经用了那就坚持吧,前些天在做一个以存储过程作为数据源的数据窗口时,只要在PB中一运行就死机,在SQL SERVER中运行就没有问题,在PB的ISQL_Session中运行也是没有问题的,开始想是PB的问题,是不是在pb.net在做存储过程的数据窗口有不可解决的BUG,后来因为在ISQL_Session中运行是没有问题的,所以我想这个肯定可以解决,后来经过在PB CLASS中设计同样的数据窗口,又突然发现我之前就用PB.NET做过这样的数据窗口,然后把这些代码全部拷贝出来进行对比,后来发现问题所在。
解决方法:
在PB.NET自动生成的数据窗口中有一个BUG,它生成的数据窗口源代码是这样的:
procedure="1 execute dbo.pd_FamilyCoursePrice;1 @studentid = :ps_studentid, @courseid = :ps_courseid" arguments=(("@studentid",string), ("@courseid",string))
如查你不用EDIT SOURCE看这个,那你就永远也发现不了这个问题,其实正确的应该 是这样的:
procedure="1 execute dbo.pd_FamilyCoursePrice;1 @studentid = :ps_studentid, @courseid = :ps_courseid" arguments=(("ps_studentid",string), ("ps_courseid",string))
我想有一定的PB开发经验的都会明白为什么是下面这样的。