如何将字符串插入到BLOB字段(20分)

  • 主题发起人 主题发起人 zqssoft
  • 开始时间 开始时间
Z

zqssoft

Unregistered / Unconfirmed
GUEST, unregistred user!
现有字符串S:='中华人民共和国',如何利用内存流MemoryStream将S的内容"中华人民共和国"插入到数据库的BLOB类型字段A中.请分别利用TQuery控件的.fieldbyname('A')方法和动态参数.params.paramsbyname('A').方法分别给一段示例代码,谢谢.
 
有人在吗?谢谢。
 
怎么感觉像是吃饱饭没事做的人想出的题目?

写进stream里,然后save进去,如果你保存多个进去,然后又分别取出来,这样的话,那你就得按一定条件去写,格式附后,在使用前,一次性读出来进行拆分。

举例格式:
my code. 3 2 a b 3 a b c 7 a a a a a a a
取stream前8字符判断是否是my code.,如果是,则就是你定义的格式,后面的3表示后面一共有3条记录,紧接着的2是后面跟了几个字符,2就是2个字符,7就是7个字符。

你这种纯属是吃饱了没事干,有相应的类型不用,要把字符串保存到二进制里去。
 
楼上的,不懂不要乱说,虽然有varchar可用,但他的最长长度为32767,如果想保存的文本数据大于这个怎么办?不用BLOB用什么。
 
不是有text吗?乱说?汗。。。
 
放心,以后不会在你面前“乱说”了,你这种人,什么都懂,还出来问什么问题呢?你没救了。
 
好好的去看下基础的东西,你连数据库中有哪些数据类型都没搞清楚,就在这说别人不懂,真有你的。
 
楼上的,你说的text是access吗,还是ms sql server.
我用开源的数据库,不是你说的ms的东西。井底之蛙,说话还不谦虚,让人汗颜。
以下是找到的相关代码,好好学习一下吧,你!:
procedure TForm1.Button1Click(Sender: TObject);
var SourceString: string;
MemoryStream: TMemoryStream;
begin
SourceString := 'Hello, how are you doing today?';
MemoryStream := TMemoryStream.Create;
try
MemoryStream.WriteBuffer(Pointer(SourceString)^, Length(SourceString));
MemoryStream.Position := 0;
finally
MemoryStream.Free;
end;

end;
 
你还有脸说,你根本没有说明是什么数据库,还在这里说别人,什么玩意。
 
还有,你找的这句,和我前面回答你的有什么区别?而且我讲的内容更加的有用,不是么?你找的这句不就是将内容写进去?但你如何判断这句是你写进去的,而不是其他类型的附件?比如word、图片什么的,你不需要区分?所以,建议你参照我写的方法来做。

好了,到此为止,不想和你争什么。
 
不管你用的是哪种开源的数据库,我建议你好好的去看下它的帮助或说明文件,一般情况下除了varchar外肯定还有其他的类似text的类型,不太可能没有的。
 
好我用的是interbase的开源版本数据库,谢谢你楼上的star5大哥,真是大热心人啊。分全给您老人家了!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
913
SUNSTONE的Delphi笔记
S
后退
顶部