Delphi与消息队列的问题,绝对有意思。 Delphi中,怎样使用消息队列;怎样使用COM+消息组件。各位,拜托了,我十万火急。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用Msmq发送blob型的数据procedure TForm1.Button9Click(Sender: TObject);varvZp:variant;strZp:string;olevZp:olevariant;begin adoquery1.Close; adoquery1.SQL.clear; adoquery1.SQL.Add('select bh,zp from g_zp where bh=741'); adoquery1.Open;//从oracle 的long raw 类型的字段中取出.jpg型的照片数据 strZp:=ADOQuery1.FieldByName('zp').asstring; vZp:=ADOQuery1.FieldByName('zp').value; olevZp:=ADOQuery1.FieldByName('zp').value; msmqqueueinfo1.PathName:='.\MYqueue'; MSMQQueueInfo1.Label_:='Myqueue'; msmqqueue1.ConnectTo(msmqqueueinfo1.Open(2,0));//将照片数据送如消息队列 MSMQMessage1.Label_:='l_zp'; MSMQMessage1.Body:=strzp; MSMQMessage1.Send(msmqqueue1.DefaultInterface); msmqqueue1.Close;end; 首先引入MSMQ的类型库,就会产生一些控件在Active里 发:procedure TForm1.Button1Click(Sender: TObject);var MSMQQInfo: Variant;begin MSMQQInfo := CreateOleObject('MSMQ.MSMQQueueInfo'); MSMQQInfo.PathName := '.\private$\Test'; try MSMQQInfo.Create; //出错误提示信息 except end; MSMQQueueInfo1.PathName := '.\private$\Test'; MSMQQueueInfo1.Label_ :='ss'; MSMQMessage1.Label_ := 'bb'; MSMQMessage1.Body := 'kk'; msmqqueue1.ConnectTo(MSMQQueueInfo1.Open(MQ_SEND_ACCESS, 0)); MSMQMessage1.Send(MSMQQueueInfo1.Open(MQ_SEND_ACCESS, MQ_DENY_NONE));end;收:procedure TForm1.Button4Click(Sender: TObject);begin msmqqueueinfo1.PathName := '.\private$\Test''; msmqqueue1.Disconnect; msmqqueue1.ConnectTo(msmqqueueinfo1.Open(1, 0)); msmqqueue1.EnableNotification(MSMQEvent1.DefaultInterface);end;处理:procedure TForm1.MSMQEvent1Arrived(Sender: TObject; var Queue: OleVariant; Cursor: Integer);var Msg: Variant; ss: string;begin Msg := Queue.Receive; ss:= Msg.body; // 处理程序end; VB调用Delphi写的dll问题,急 请人指点!一奇简单问题!没分了不要见怪! 一个高难度的打印问题! Quick CHM 问题 关于统计的<<难题>>高手请进,我给100分!各位帮忙了! Dbgrid中对应的某一字段内容过多,能实现换行吗? 有没有好的做类似OfficeXp菜单的控件?CoolMenu好像不好用 难死你们这些菜鸟!!!怎样防止别人嗅探我的FTP用户名和密码??? 关于:KILL UNIX进程的方法??? 请帮忙。 ^o^ 怎样才能判断出一个变量中的字符串是否是汉字? 字符串能轉化成對象嗎?
procedure TForm1.Button9Click(Sender: TObject);
var
vZp:variant;
strZp:string;
olevZp:olevariant;
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select bh,zp from g_zp where bh=741');
adoquery1.Open;
//从oracle 的long raw 类型的字段中取出.jpg型的照片数据
strZp:=ADOQuery1.FieldByName('zp').asstring;
vZp:=ADOQuery1.FieldByName('zp').value;
olevZp:=ADOQuery1.FieldByName('zp').value;
msmqqueueinfo1.PathName:='.\MYqueue';
MSMQQueueInfo1.Label_:='Myqueue';
msmqqueue1.ConnectTo(msmqqueueinfo1.Open(2,0));
//将照片数据送如消息队列
MSMQMessage1.Label_:='l_zp';
MSMQMessage1.Body:=strzp;
MSMQMessage1.Send(msmqqueue1.DefaultInterface);
msmqqueue1.Close;end;
procedure TForm1.Button1Click(Sender: TObject);var
MSMQQInfo: Variant;
begin MSMQQInfo := CreateOleObject('MSMQ.MSMQQueueInfo');
MSMQQInfo.PathName := '.\private$\Test';
try
MSMQQInfo.Create; //出错误提示信息
except
end;
MSMQQueueInfo1.PathName := '.\private$\Test';
MSMQQueueInfo1.Label_ :='ss';
MSMQMessage1.Label_ := 'bb';
MSMQMessage1.Body := 'kk';
msmqqueue1.ConnectTo(MSMQQueueInfo1.Open(MQ_SEND_ACCESS, 0));
MSMQMessage1.Send(MSMQQueueInfo1.Open(MQ_SEND_ACCESS, MQ_DENY_NONE));
end;
收:
procedure TForm1.Button4Click(Sender: TObject);
begin
msmqqueueinfo1.PathName := '.\private$\Test'';
msmqqueue1.Disconnect;
msmqqueue1.ConnectTo(msmqqueueinfo1.Open(1, 0));
msmqqueue1.EnableNotification(MSMQEvent1.DefaultInterface);
end;处理:
procedure TForm1.MSMQEvent1Arrived(Sender: TObject; var Queue: OleVariant;
Cursor: Integer);
var
Msg: Variant;
ss: string;begin
Msg := Queue.Receive;
ss:= Msg.body;
// 处理程序
end;