********************新手有关access的ole字段如何写sql查询和插入语句的问题**********

jimu8130 2007-04-22 06:12:43
问题1:access数据库中有a表,某字段b为ole对象(想插入一个字节数组里面的数据)
如果利用delphi来执行一个sql语句来插入一条记录,不知道该如何写sql语句
insert a (b) values(???????????
请各位老大帮忙看看如何解决或者有更好的办法来存储数据同时也方便查询!

问题2:另外查询a表的时候,我可能要截取字段b的值(相应存储的时候用到的字节数组,我想要取到第3,第4,第5字节的数据),不知道应该如何写,请各位给出具体的sql语句
...全文
375 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
fromocean 2007-04-23
  • 打赏
  • 举报
回复
我看你的描述,其实通过上面的代码你可以发现最后可以转化位字节数组的比较,并不需要在sql语句截取,何况还不方便.
fromocean 2007-04-23
  • 打赏
  • 举报
回复
你这样做看看
try
AdoQuery1.Open;
AdoQuery1.First;
mystm :=AdoQuery1.CreateBlobStream(AdoQuery1.FieldByName('cardno'),bmRead);
mystm.Position :=0;
showmessage(inttostr(mystm.Size));
mystm.ReadBuffer(mybyte[0],4);
except
showmessage('error');
end;
jimu8130 2007-04-23
  • 打赏
  • 举报
回复
to HsWong:
呵呵,第一个问题我看了网上的文章写了类似你写的这段代码,不知道问题2你有什么办法?
HsWong 2007-04-23
  • 打赏
  • 举报
回复
var
data : array [0..5] of byte;
ms:TMemoryStream;
begin
ms:=TMemoryStream.Create;
ms.WriteBuffer(data,6);
AdoQuery1.Close;
AdoQuery1.SQL.Text:= 'insert a(b) values(:b)';
AdoQuery1.Parameters[0].LoadFromStream(ms,ftBlob);
AdoQuery1.ExecSQL;
ms.Free;
HsWong 2007-04-23
  • 打赏
  • 举报
回复
var
data : array [0..5] of byte;
ms:TMemoryStream;
begin
ms:=TMemoryStream.Create;
ms.WriteBuffer(data,6);
AdoQuery1.Close;
AdoQuery1.SQL.Text:= 'insert a(b) values(:b)';
AdoQuery1.Parameters[0].LoadFromStream(ms,ftBlob);
ms.Free;
jimu8130 2007-04-23
  • 打赏
  • 举报
回复
又没人看了?郁闷,论坛没人了么?
jimu8130 2007-04-23
  • 打赏
  • 举报
回复
@我感觉如果设置为ole类型的话,那么这个通过sql语句的截取相对简单些
更正下,不是截取相对简单,是截取后对比数据相对简单
jimu8130 2007-04-23
  • 打赏
  • 举报
回复
to lcgboy:
那我更具体点
问题1:数据表a,我想存入一个字节数组里面的数据到这个表的字段a,我设置这个字段b为ole类型,那么这个sql语句该怎么写了?
strSql :string;
data : array [0..5] of byte;

strSql := 'insert a(b) values(?????????????'---这里该如何写了?

如果对我设置该字段为ole类型不解,那我说明下,因为后面查询还要截取该字段其中的3,4,5字节的数据和另外一个字节数组c的c[3],c[4],c[5]里面的值进行比对看是否相等。我感觉如果设置为ole类型的话,那么这个通过sql语句的截取相对简单些。如果各位对这个设置有其他建议可以提出来

问题2:接着问题1,如果我成功插入{$5b,$ff,$2a}这样一个字节数组到该字段,那么查询的时候我想要截取最后两个字节的数据即能得到$ff,$2a,不知道具体的sql语句该怎么写了?
lcgboy 2007-04-23
  • 打赏
  • 举报
回复
那sorry了,我确实理解不了你的问题了,如果你能说清楚点的话我认为会更好
jimu8130 2007-04-23
  • 打赏
  • 举报
回复
to lcgboy:
关于第一个问题,你写的我都会写但是这个关键字段该怎么赋值了?insert的语法我知道!!!
insert a (b) values(???????????
关于第二个问题
mid函数我也知道,但是我想问的是“我可能要截取字段b的值(相应存储的时候用到的字节数组,我想要取到第3,第4,第5字节的数据),不知道应该如何写,请各位给出具体的sql语句”

请看清楚我的问题
lcgboy 2007-04-23
  • 打赏
  • 举报
回复
1,
insert (字段名1,字段名2,...) values(值1,值2,......)

2,select mid(字段名,截取位置(数字),截取长度) from 表名
jimu8130 2007-04-23
  • 打赏
  • 举报
回复
分都不要了么?
jimu8130 2007-04-22
  • 打赏
  • 举报
回复
没人了么?
jimu8130 2007-04-22
  • 打赏
  • 举报
回复
没人帮我么?
IDWB 2007-04-22
  • 打赏
  • 举报
回复
:(

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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