SQL语法中关于二进制流字段的存储问题(200分)

  • 主题发起人 主题发起人 回顾
  • 开始时间 开始时间

回顾

Unregistered / Unconfirmed
GUEST, unregistred user!
在SQL Server中,
如何用SQL语法将一个表中的记录
添加到另一个相同结构的表中,
其中包括image(16)和VarText(16)这种比较烦的字段.
谢谢!

 
用TMemoryStream试试。
对Blob的问题(在Table中),我是使用此。
 
可以用TBlobStream:

procedure TForm1.Button1Click(Sender: TObject);
var
BS1, BS2: TBlobStream;
begin
BS1 := TBlobStream.Create(Table1Notes,bmRead);
try
Table2.Edit;
BS2 := TBlobStream.Create(Table2MyBlob,bmReadWrite);
try
BS2.CopyFrom(BS1,BS1.Size);
finally
BS2.Free;
end;
finally
BS1.Free;
end;
Table2.Post;
end;
 
SQL的
Inset into ...
select .. from ..
不支持image(16)和VarText(16).

看看这样行不行:

Inset into .....
select (非image(16)和VarText(16)字段) from....

Update ...
set (image(16)和VarText(16))=(select (image(16)和VarText(16))
from ....
where ....
)
where ....

如果这样不行,只有使用上面各位的方法了。
 
我说的是在SQL Server中,不涉及到其他开发环境。
比如:
Declare @Var1 Image(16)

Select @Var1=Colum1
from TB_1 where ID=5

Insert into TB_2(Colum1)
Value @Var

须如此,有难度吧?
 
真是麻烦
 
先用sql 的精靈來完成吧^^||
 
各位:冒昧请教一句,
insert into xxx1
select * from xxx2
有何不妥?
 
to wrench:
insert into xxx1
select * from xxx2
不支持image和VarText.

 
Delphi程序员就没有数据库高手?
 
有没有试我提的方法,全部使用sql,可以在存储过程中完成。

btw:
不要说这种伤感情的话.
 
对不起,我只是想激发一下大家的灵感,请各位不要生气。
存储过程最终也涉及到image(16)类型的附值问题,
既然在SQL Server中可以定义image(16)类型的变量,
就应该有解救的办法,
我希望将查处的数据放入临时变量中,
在添加到另一表中,这样我处理能简单一些,
可是,能解决吗?
帮帮我吧,
先谢过了。
期待着。。。。。。

 
我有一着不知可否,

MSSQL7 有一个SQL监视器,可以看到所有提交到SQLServer的SQL语句,就算
你用Table,最后Delphi也得转成SQL提交到SQLServer,所以打开SQL监视器等着,
然后,再用TBlob方法写一条记录,看看Delphi是怎么处理的。

我现在没开NT,所以想不起来SQL监视器是什么Exe文件,你自己找找,
 
找不到SQL监视器,有谁用过?
 
Delphi自带了一个SQL Monitor,可以用它监视所有执行的SQL,参数及错误信息。
 
还请告知如何使用,
不胜感激!
 
是 SQLtrace.exe,在SQL目录下的Binn2

今天开了SQL7.0看了一下,傻了。
看到的就是
Update table
set a='a',b='0xdfkjdjkfjlksdflkj jkejlkdfjkadfjk'
也不知道Delphi是按什么原理把Blob转成一串字符的,
 
To:guojun
原来是SQLtrace.exe,我早已打开过好多次了,
只是不知道他有这种功能,但下一步该如何处理呢?
 
后退
顶部