我用ReportBuild做了几张报表,想把它们存在sql server中,相应的字段不知道应该设成什么类型

解决方案 »

  1.   

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SYS_RepFile]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[SYS_RepFile]
    GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SYS_RepFolder]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[SYS_RepFolder]
    GOCREATE 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]
    GOCREATE 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]
    GOALTER 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]
    GOsetuser
    GOEXEC sp_bindefault N'[dbo].[IZero]', N'[SYS_RepFile].[FolderID]'
    GOEXEC sp_bindefault N'[dbo].[DBlank]', N'[SYS_RepFile].[MDate]'
    GOEXEC sp_bindefault N'[dbo].[SBlank]', N'[SYS_RepFile].[RepName]'
    GOEXEC sp_bindefault N'[dbo].[IZero]', N'[SYS_RepFile].[RepSize]'
    GOEXEC sp_bindefault N'[dbo].[IZero]', N'[SYS_RepFile].[RepType]'
    GOsetuser
    GOsetuser
    GOEXEC sp_bindefault N'[dbo].[SBlank]', N'[SYS_RepFolder].[FolderName]'
    GOEXEC sp_bindefault N'[dbo].[IZero]', N'[SYS_RepFolder].[ParentID]'
    GOsetuser
    GO
    exec sp_addextendedproperty N'MS_Description', N'删除日期', N'user', N'dbo', N'table', N'SYS_RepFile', N'column', N'DDate'
    GO
    exec sp_addextendedproperty N'MS_Description', N'目录编号', N'user', N'dbo', N'table', N'SYS_RepFile', N'column', N'FolderID'
    GO
    exec sp_addextendedproperty N'MS_Description', N'修改日期', N'user', N'dbo', N'table', N'SYS_RepFile', N'column', N'MDate'
    GO
    exec sp_addextendedproperty N'MS_Description', N'报表文件', N'user', N'dbo', N'table', N'SYS_RepFile', N'column', N'RepFile'
    GO
    exec sp_addextendedproperty N'MS_Description', N'报表编号', N'user', N'dbo', N'table', N'SYS_RepFile', N'column', N'RepID'
    GO
    exec sp_addextendedproperty N'MS_Description', N'报表名称', N'user', N'dbo', N'table', N'SYS_RepFile', N'column', N'RepName'
    GO
    exec sp_addextendedproperty N'MS_Description', N'报表大小', N'user', N'dbo', N'table', N'SYS_RepFile', N'column', N'RepSize'
    GO
    exec sp_addextendedproperty N'MS_Description', N'报表类型', N'user', N'dbo', N'table', N'SYS_RepFile', N'column', N'RepType'
    GO
    exec sp_addextendedproperty N'MS_Description', N'目录编号', N'user', N'dbo', N'table', N'SYS_RepFolder', N'column', N'FolderID'
    GO
    exec sp_addextendedproperty N'MS_Description', N'目录名称', N'user', N'dbo', N'table', N'SYS_RepFolder', N'column', N'FolderName'
    GO
    exec sp_addextendedproperty N'MS_Description', N'父目录编号', N'user', N'dbo', N'table', N'SYS_RepFolder', N'column', N'ParentID'
    GO
      

  2.   

    image,二进制的都不行。可是在里面自带pandox的实例里面就可以保存进去!
      

  3.   

    belllab(bell) ( ):
    sorry,误会我的意思了!
      

  4.   

    if  T_base_template.Locate('id',10,[]) then
              begin
                ppReport.Template.DatabaseSettings.DataPipeline:=pp_base_template;
                ppReport.Template.DatabaseSettings.Name:='template';
                ppReport.Template.DatabaseSettings.TemplateField:='template';
                ppReport.Template.DatabaseSettings.Name:='id';
                ppReport.Template.DatabaseSettings.NameField:='id';
                ppReport.Template.LoadFromDatabase;//保存格式错误。
                ppReport.DataPipeLine:=pp_Master;
              end;
      

  5.   

    试一试:‘字段名’定义为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;
    ...