CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  基础类

怎样在表中添加大文本数据列?

楼主lihaitao0714()2003-04-03 20:48:27 在 PowerBuilder / 基础类 提问

我想要在某个列的每个字段中输入几千字的大文本,如果不行还可以用什么方法?  
   
  1选择什么数据类型?  
  2怎样在表中输入数据?  
  3怎样通过数据窗口显示大文本? 问题点数:0、回复次数:7Top

1 楼zhouweiwansui(彪悍的论点不需要解释)回复于 2003-04-04 00:03:16 得分 0

存成文本文档,写进blob变量存进数据库  
  用updateblob,具体自己查帮助  
  Top

2 楼xirumin(吃好喝好)回复于 2003-04-04 08:08:13 得分 0

只要在4k以下,可以是varchar型的字段(sql-server支持8k以下),   但pb的直连接口只支持255,   odbc可到4k  
  另外,定义成text型的字段操作与varchar型相似,   也是一种选择Top

3 楼coolingpipe(冷箫轻笛)回复于 2003-04-04 11:26:38 得分 0

???  
  用的什么数据库啊?是SQL   anywhere吗?Top

4 楼dejkstro(立刻死臭)回复于 2003-04-04 11:52:42 得分 0

1.选择   blob  
  2.UPDATEBLOB  
  3.用一个控件(建议用微软的   Rich   Textbox   Control,pb   的太次)来完成显示Top

5 楼redfox33(豆子)回复于 2003-04-04 17:10:02 得分 0

我的数据库是Sybase11.01  
  我用text类型保存大文本字段。(anywhere数据库可以用   long   binary)  
  用rich   text   edit显示从数据库中读取的大文本。  
  我的代码如下。  
   
   
  注:  
  表   software_version   结构如下  
  字段名                   类型  
  upgrade_txt       text类型字段(blod)  
  sw_verxh             int型(ID)  
   
   
  //*************w_upgradesql窗体代码如下*************  
   
  //*******w_upgradesql   窗体实例变量*******  
  string     is_update     //大文本列的内容  
  //**********************  
   
   
  //从数据库中读取大文本列的内容,然后将其放入RTE控制中  
   
  blob           lbb_temp  
  long           ll_i  
   
  w_upgradesql.is_update=string("")  
  //查询大文本列的内容  
   
  selectblob   upgrade_txt   into:lbb_temp   from   software_version  
  where   sw_verxh=:xh;  
   
  if   sqlca.sqlcode<>0   then  
   
              messagebox("提示信息",sqlca.sqlerrtext)  
  return  
        end   if  
   
  //********************//  
  //设置大文本的内容到窗口w_rte_blob上的RTE控制rte_editor中  
  is_update=string(lbb_temp)  
  rte_editor.SelectTextAll()  
  rte_editor.clear()  
   
  ll_i=rte_editor.PasteRtf(is_update)  
   
  if   ll_i=-1   then  
        rte_editor.ReplaceText(is_update)  
        end   if  
   
  //*************w_upgradesql窗体代码结束*************  
   
   
  w_upgradesql窗体上还有一个菜单,用来执行从txt文件中装入大文本和  
  将大文本导入txt文件中以及保存大文本至数据库的功能。  
  //*******************************  
  读取文件功能:  
  //读取文件  
  integer   li_return,li_pos  
  string     ls_pathname,ls_filename,ls_extension  
   
  li_return=GetFileOpenName("文件读取",ls_pathname,ls_filename,"TXT","Text   Files   (*.TXT),*.TXT,Rich   Text   Files   (*.RTF),*.RTF")  
  if   li_return=1   then  
  //获取文件扩展名  
  ls_filename=lower(ls_filename)  
  li_pos=pos(ls_filename,'.')  
  ls_extension=mid(ls_filename,li_pos+1,3)  
   
  choose   case   ls_extension  
  case   "txt"  
    w_upgradesql.rte_editor.InsertDocument(ls_pathname,true,FileTypeText!)  
  case   "rtf"  
    w_upgradesql.rte_editor.InsertDocument(ls_pathname,true,FileTypeRichText!)  
  case   else  
    messagebox("提示信息","请选择TXT或RTF文件")  
  end   choose  
  end   if  
   
  //*******************  
  导出文件功能:  
  //将文本内容保存到文件中  
  integer   li_rtn,li_return,li_pos  
  string     ls_pathname,ls_filename,ls_extension  
   
  li_return=GetFileSaveName("文件保存",ls_pathname,ls_filename,"TXT","Text   Files(*.TXT),*.TXT,Rich   Text   Files(*.rtf),*.rtf")  
   
  if   li_return=1   then  
  //获取文件扩展名  
  ls_filename=lower(ls_filename)  
  li_pos=pos(ls_filename,'.')  
  ls_extension=mid(ls_filename,li_pos+1,3)  
   
  choose   case   ls_extension  
  case   "txt"  
  li_rtn=w_upgradesql.rte_editor.SaveDocument(ls_pathname,FileTypeText!)  
  case   "rtf"  
  li_rtn=w_upgradesql.rte_editor.SaveDocument(ls_pathname,FileTypeRichText!)  
  case   else  
  messagebox("提示信息","请选择TXT或RTF文件")  
  end   choose  
  end   if  
   
   
  //**************  
  保存到数据库功能:  
  //提交  
  //将编辑结果保存到表中的大文本列中  
  blob     lbb_update  
  string   ls_temp  
   
  ls_temp=w_upgradesql.rte_editor.CopyRtf(false)  
  lbb_update=blob(ls_temp)  
   
  updateblob     software_version   set   upgrade_txt=:lbb_update  
      where   sw_verxh=:w_upgradesql.xh;  
       
      if   sqlca.sqlcode<>0   then  
      messagebox("提示信息",sqlca.sqlerrtext)  
      rollback;  
      else  
      commit;  
      end   if  
  Top

6 楼zzclhcbmail(笑傲糨糊)回复于 2003-04-04 17:24:13 得分 0

用text类型即可Top

7 楼coolingpipe(冷箫轻笛)回复于 2003-04-04 17:30:31 得分 0

问题不明确,如果用的是SQL   SERVER则用TEXT类型,也可以用NTEXT类型Top

相关问题

  • 用ADO创建ACCESS表后,添加文本数据后的问题
  • 如何根据数据库中的表 动态添加文本框并获得 输入值?
  • access数据库怎么添加长文本?(高分)
  • 在一个表单里获取数据库资料和点击一个链接或按钮怎么把数据添加到文本框里?
  • 如何从文本文件中读出数据,添加到数据库中
  • 为什么文本域的数据无法添加到数据库?急!
  • 对sql 2000数据的文本字段添加数据时,出现错误?
  • 文本文件导入数据表
  • Access 数据添加,文本框小于6位数的不给登记?
  • 如何使添加的内容放到文本数据库的前面?

关键词

  • 文本
  • 字段
  • 文件
  • 数据库
  • 数据
  • 代码
  • 内容
  • upgradesql
  • rte
  • ls

得分解答快速导航

  • 帖主:lihaitao0714

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo