delphi,Sqlserver2000的二进制问题 ,有点棘手啊,请帮忙!

sxd78 2003-02-19 01:47:18
Sqlserver200中的字段msg_content为[varbinary] (255)二进制 型
delphi中想为其赋值为十六进制标识文本'0x0605041582158264f000'和‘DYTT'文本
怎么解决?
...全文
37 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
strongniu 2003-02-27
  • 打赏
  • 举报
回复
BCB下:
// 字段FP类型为bytes,长度为252;
//数据入库用setdata
//数据获取时,先访问Table1->FieldByName("FP")->DataSize,获取分配缓冲空间的长度
//分配合适的缓冲空间,调用GetData
//以下为数据入库范例
//SetData&GetData不适合BLOB or memo fields

unsigned char data[252];

FILE *fp;
fp=fopen("fp0.dat","r");
for (int i=0;i<252;i++)
fscanf(fp,"%c",data[i]);
fclose(fp);

Table1->Append();
Table1->FieldValues["Id"]=Edit2->Text;
Table1->FieldByName("FP")->SetData(data);
Table1->Post();
sxd78 2003-02-20
  • 打赏
  • 举报
回复
procedure TShortMsgForm.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
var
RecInfo:^TRecInfo;
MS: TMemoryStream;
a:array[0..21] of char;
begin
with CmppTable do
begin
if Not CmppTable.Active then
open;
append;
ADOConnection1.BeginTrans;
try
RecInfo:=Pointer(socket.ReceiveText);
fieldbyname('msg_id').asstring:=inttostr(RecInfo^.msg_id);
fieldbyname('pk_total').asstring:='1';
fieldbyname('pk_number').asstring:='1';
fieldbyname('registered_delivery').asstring:=inttostr(RecInfo^.Registered_Delivery);
fieldbyname('msg_level').asstring:='0';
fieldbyname('service_id').asstring:='ls';
fieldbyname('fee_user_type').asstring:='3';
fieldbyname('fee_terminal_id').asstring:=RecInfo^.Srcterminal_id;
fieldbyname('tp_pid').asstring:=Inttostr(RecInfo^.TP_pid);
fieldbyname('tp_udhi').asstring:='1'; //Inttostr(RecInfo^.TP_udhi);
fieldbyname('msg_fmt').asstring:='4';
fieldbyname('msg_src').asstring:='908053';
fieldbyname('fee_type').asstring:='01';
fieldbyname('fee_code').asstring:='000020';
fieldbyname('src_terminal_id').asstring:='6001';
fieldbyname('dest_usr_tl').asstring:='0';
fieldbyname('dest_terminal_id').asstring:=RecInfo^.Srcterminal_id;
fieldbyname('msg_length').asstring:=inttostr(RecInfo^.Msg_length);
MS:=TMemoryStream.create;
MS.writebuffer(RecInfo^.Msg_Content,4);
Tblobfield(fieldbyname('msg_content')).LoadFromStream(MS);
ms.Free;
{fieldbyname('msg_content').asvariant:='0x0605041582158264f000'+RecInfo^.Msg_Content;}
fieldbyname('ih_process').asstring:='insert_cmpp_submit';
fieldbyname('ih_result').asstring:='0';
fieldbyname('ih_gateway').asstring:='hljcmcc';
fieldbyname('ih_retry').asstring:='3';
fieldbyname('ih_session').asstring:='0';
fieldbyname('ih_timestamp').asstring:=datetimetostr(date);
post;
ADOConnection1.CommitTrans;
SuccCount:=SuccCount+1;
StatusBar1.Panels[1].Text:='传送成功数:'+inttostr(SuccCount);
except
ADOConnection1.RollbackTrans;
ErrCount:=ErrCount+1;
StatusBar1.Panels[2].Text:='传送失败数:'+inttostr(ErrCount);
end;
end;
可出错了,错误信息为
‘Invalid class typecast'
qiume 2003-02-20
  • 打赏
  • 举报
回复
up
beata88 2003-02-20
  • 打赏
  • 举报
回复
学习
d983074 2003-02-19
  • 打赏
  • 举报
回复
tblobfield,-_-b

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧