它们各有自己的优点和缺点,要不就不会存在这两种了。
BMP的创建,重载等 *** 作,是由编写EJB的程序员在写EJB时就设计好的。这部分你好像知道了。
至于CMP呢,则是由一个叫容器的平台了实现的,C就是Container的简写。
容器是一个封装好的一个EJB服务,CMP程序员只要将写好的EJB交给容器就行了。容器会提供管理这些EJB的生命周期。你所说的和数据库连接,它是以容器的一个相当于环境设置变量的接口提供的。EJB只需要去调用该类似于接口的方法就行。
CMP必须符合一定的规范,否则无法运行,由于一些功能是有容器提供,所以它的运行效率和某一些特性将受限,但是,通过部署,它可以很快的在另一个EJB服务器上运行。
BMP在移植性上没有CMP好,但是,它一般是专用专写的程序,它的行为是可控的。
----------------------------------------------------------
BMP是在bean中完成对数据库JDBC的各种调用 也就是说 在实体Bean中明确写入SQL语句,并且使用DataSource获得一个数据库资源以及连接从而对数据库进行增加 删除和修改
CMP 是EJB容器自动完成对数据库的 *** 作,你所做的就是在实体Bean中重写入setXXXX或GETXXXXX方法,然后再ejb-jarxml中定义cmp-field就可以
很明显 编写CMP要简单得多,而且数据库 *** 作有EJB容器完成因该是一种趋势,但CMP不够灵活
>
用TADOBlobStream进行转换。 var blobStream: TADOBlobStream; begin TADOBlobStreamCreate(TBlobField(AdoTable1fieldbyname( 'Picture ')), bmRead); QRDBImage没用过,不知道是否支持jpeg,如果不支持,则需要使用 tjpegiamge对象来进行转换、
作为2二进制文件打开,一个字节一个字节地读入,写出,直到EOF(文件结束符)。当然写出时要按数据库约定的方式。
下面作为普通文件输出
FILE fin,fout;
void main()
{
int c;
fin=fopen( "duckjpg","rb"); // 作为2二进制文件打开
fout=fopen("tmpjpg","wb");
while(1){
c=fgetc(fin); // 一个字节一个字节地读入
if (feof(fin)) break; // 直到EOF
fputc ( c , fout ); // 改此句,让它符合数据库约定。
}
}
1、如何实现在Microsoft Access数据库中的图像存储:
这里是利用TStream的子类TMemoryStream向Microsoft Access数据库中存储图像的。
下面的这段代码是在按了“保存”按钮之后所触发的事件处理程序:
procedure TForm1Button1Click(Sender: TObject);
Var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
Begin
MyJPEG := TJPEGImageCreate;
Try
With MyJPEG do
Begin
Assign(ImagePictureGraphic);
MS:=TMemoryStreamcreate;
SaveToStream(MS);
MSPosition := 0;
Table1Edit;
TBlobField(Table1FieldbyName('Image'))LoadFromStream(MS);
Table1Post;
Messagebox(Getactivewindow(), '图像保存完毕!', '保存', MB_OK);
End;
Finally
MyJPEGFree;
End;
End;
在这段代码里TStream的子类TMemoryStream利用内存流起到了将BMP格式转化为JPEG格式
的中间桥梁的作用。
2、如何将图像从Microsoft Access数据库中取出并显示出来:
下面的这段代码是在按了“查看图像”按钮之后所触发的事件处理程序:
procedure TForm1Button1Click(Sender: TObject);
Var
MyJPEG : TJPEGImage;
MS : TMemoryStream;
Begin
Try
MS := TMemoryStreamCreate;
TBlobField(Query1FieldByName('Image'))SaveToStream(MS);
MSPosition := 0;
MyJPEG := TJPEGImageCreate;
MyJPEGLoadFromStream(MS);
DBImage1PictureBitmapAssign(MyJPEG);
//或是SenderPictureAssign(MyJPEG);
Finally
MSFree;
MyJPEGFree;
End;
End;
OA系统主要是面向企业内部,因产品的不同,适用于各大、中、小型企业。而bmp系统是中、大型企业业务信息化的首选,同时也不仅仅局限于企业内部,可实现跨应用、跨部门、跨合作伙伴与客户的企业运作。OA只能作为一个多功能为一体的办公平台来使用,对于业务全方面的处理和分析还不够深入。bmp需要对业务流程的各个环节数据进行分析、逻辑判断、深层处理,并将结果性数据及时反馈到系统里,从而实现对企业风险管控和运营效率的提升。bpm在梳理过程中需要使用大量数据,这就使得bpm与数据库的交互非常频繁,对数据库技术和大小的要求较高。流程云BPM可以为企业打造缜密可靠的工作流审批平台,按企业行业、业务习惯量身定制属于您企业独一无二的BPM平台
以上就是关于BMP和CMP的差异全部的内容,包括:BMP和CMP的差异、在PowerBuilder中 *** 作BLOB数据的技巧[1]、在Delphi中如何将数据库中jpg格式的图片取出,再以bmp的格式放到QRDBImage中输出!拜托各位了 3Q等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)