我用ReportBuild做了几张报表,想把它们存在sql server中,相应的字段不知道应该设成什么类型
你定义的是什么类型?
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[SYS_RepFile]) and OBJECTPROPERTY(id, NIsUserTable) = 1)
drop table [dbo].[SYS_RepFile]
GO
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[SYS_RepFolder]) and OBJECTPROPERTY(id, NIsUserTable) = 1)
drop table [dbo].[SYS_RepFolder]
GO
CREATE TABLE [dbo].[SYS_RepFile] (
[RepID] [int] IDENTITY (1, 1) NOT NULL ,
[FolderID] [int] NOT NULL ,
[RepName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[RepSize] [int] NULL ,
[RepType] [int] NOT NULL ,
[MDate] [datetime] NOT NULL ,
[DDate] [datetime] NULL ,
[RepFile] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[SYS_RepFolder] (
[FolderID] [int] IDENTITY (1, 1) NOT NULL ,
[FolderName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ParentID] [int] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[SYS_RepFile] WITH NOCHECK ADD
CONSTRAINT [IX_SYS_RepFile] UNIQUE CLUSTERED
(
[FolderID],
[RepType],
[RepName],
[MDate]
) ON [PRIMARY]
GO
CREATE UNIQUE CLUSTERED INDEX [IX_SYS_RepFolder] ON [dbo].[SYS_RepFolder]([FolderID], [FolderName], [ParentID]) ON [PRIMARY]
GO
CREATE INDEX [IX_SYS_RepFile_1] ON [dbo].[SYS_RepFile]([FolderID], [RepType], [RepName]) ON [PRIMARY]
GO
CREATE INDEX [IX_SYS_RepFolder_1] ON [dbo].[SYS_RepFolder]([FolderID]) ON [PRIMARY]
GO
CREATE INDEX [IX_SYS_RepFolder_2] ON [dbo].[SYS_RepFolder]([ParentID]) ON [PRIMARY]
GO
setuser
GO
EXEC sp_bindefault N[dbo].[IZero], N[SYS_RepFile].[FolderID]
GO
EXEC sp_bindefault N[dbo].[DBlank], N[SYS_RepFile].[MDate]
GO
EXEC sp_bindefault N[dbo].[SBlank], N[SYS_RepFile].[RepName]
GO
EXEC sp_bindefault N[dbo].[IZero], N[SYS_RepFile].[RepSize]
GO
EXEC sp_bindefault N[dbo].[IZero], N[SYS_RepFile].[RepType]
GO
setuser
GO
setuser
GO
EXEC sp_bindefault N[dbo].[SBlank], N[SYS_RepFolder].[FolderName]
GO
EXEC sp_bindefault N[dbo].[IZero], N[SYS_RepFolder].[ParentID]
GO
setuser
GO
exec sp_addextendedproperty NMS_Description, N删除日期, Nuser, Ndbo, Ntable, NSYS_RepFile, Ncolumn, NDDate
GO
exec sp_addextendedproperty NMS_Description, N目录编号, Nuser, Ndbo, Ntable, NSYS_RepFile, Ncolumn, NFolderID
GO
exec sp_addextendedproperty NMS_Description, N修改日期, Nuser, Ndbo, Ntable, NSYS_RepFile, Ncolumn, NMDate
GO
exec sp_addextendedproperty NMS_Description, N报表文件, Nuser, Ndbo, Ntable, NSYS_RepFile, Ncolumn, NRepFile
GO
exec sp_addextendedproperty NMS_Description, N报表编号, Nuser, Ndbo, Ntable, NSYS_RepFile, Ncolumn, NRepID
GO
exec sp_addextendedproperty NMS_Description, N报表名称, Nuser, Ndbo, Ntable, NSYS_RepFile, Ncolumn, NRepName
GO
exec sp_addextendedproperty NMS_Description, N报表大小, Nuser, Ndbo, Ntable, NSYS_RepFile, Ncolumn, NRepSize
GO
exec sp_addextendedproperty NMS_Description, N报表类型, Nuser, Ndbo, Ntable, NSYS_RepFile, Ncolumn, NRepType
GO
exec sp_addextendedproperty NMS_Description, N目录编号, Nuser, Ndbo, Ntable, NSYS_RepFolder, Ncolumn, NFolderID
GO
exec sp_addextendedproperty NMS_Description, N目录名称, Nuser, Ndbo, Ntable, NSYS_RepFolder, Ncolumn, NFolderName
GO
exec sp_addextendedproperty NMS_Description, N父目录编号, Nuser, Ndbo, Ntable, NSYS_RepFolder, Ncolumn, NParentID
GO
你把那段保存的代码贴一下吧
我也想知道此问题的答案,替你up一下。
up
试一试:
‘字段名’定义为image类型
var
MyStream: TFileStream;
...
//保存
MyStream := TFileStream.Create(Filename, fmOpenRead);
...
Query1.ParamByName(字段名).LoadFromStream(MyStream, ftBlob);
...
MyStream.Free;
//读取
var
Mem:TMemoryStream;
MyStream: TBlobStream;
Report_name:string;
...
Report_name := extractfilepath(paramstr(0)) + report\RTM\文件名.rtm;
...
MyStream := TBlobStream.Create(TBlobField(FieldByName(字段名)),bmRead);
Mem:=TmemoryStream.Create;
Mem.LoadFromStream(MyStream);
Mem.SaveToFile(Report_name);
Mem.Free;
...