p_dm_log.tmp_qry_log_1.sql.add('DECLARE @ptrval varbinary(16) '+
'SELECT @ptrval=textptr(map) FROM map_room '+
'WHERE unit_code= :unit_code and build_no= :build_no and location= :location and '+
' datalength(map)>0 '+
'readtext map_room.map @ptrval :pos :size ');
p_dm_log.tmp_qry_log_1.parambyname('pos').asinteger:=pos;
p_dm_log.tmp_qry_log_1.parambyname('size').asinteger:=j;
p_dm_log.tmp_qry_log_1.open;
运行时 说unit_code 是个unknow type我在sql 库中直接运行是可以的运行的代码是这样的DECLARE @ptrval varbinary(16) SELECT @ptrval = textptr(map)
FROM map_room
WHERE unit_code = 16520704 AND build_no = 'D04' AND
location = '富春花园D组团4幢' AND datalength(map)
> 0 READTEXT map_room.map @ptrval 3000 0
啊!,怎么回事啊!
'SELECT @ptrval=textptr(map) FROM map_room '+
'WHERE unit_code= :unit_code and build_no= :build_no and location= :location and '+
' datalength(map)>0 '+
'readtext map_room.map @ptrval :pos :size ');
p_dm_log.tmp_qry_log_1.parambyname('pos').asinteger:=pos;
p_dm_log.tmp_qry_log_1.parambyname('size').asinteger:=j;
p_dm_log.tmp_qry_log_1.open;
运行时 说unit_code 是个unknow type我在sql 库中直接运行是可以的运行的代码是这样的DECLARE @ptrval varbinary(16) SELECT @ptrval = textptr(map)
FROM map_room
WHERE unit_code = 16520704 AND build_no = 'D04' AND
location = '富春花园D组团4幢' AND datalength(map)
> 0 READTEXT map_room.map @ptrval 3000 0
啊!,怎么回事啊!
:build_no
:location
这三个参数好像没有赋值啊!
用TBlobStream去读还好一些,用READTEXT太麻烦了.
var
tmp: TMemoryStream;
aa: TBlobStream;
aa:=TBLobStream.Create(BLOB字段, bmRead);
try
tmp.LoadFromStream(aa);
finally
aa.Free;
end;
感觉要用AdoStoredProc
感觉要用AdoStoredProc