请问怎么才能把图片、PDF、文本文件插入到sybase中,在unix操作系统下。谢谢了!!!
光芒神剑 回复于:2002-03-25 12:10:35
在程序中使用二进制大对象!
howto 回复于:2002-03-26 21:23:33
可以定义字段类型为imge
jazy 回复于:2002-04-22 22:13:45
我基本统一楼上所说!!!Sybase 支持Image 类型!!
lzhu 回复于:2002-05-08 16:00:55
一张照片是一个文件(phtot.jpg),那有什么命令才能加入到表中呢?
谢谢
晴天羽 回复于:2002-05-10 10:41:12
那用什么方法可以插入到数据库中呢?这些我都定义了。
陈苏文 回复于:2002-05-11 15:56:09
用函数writetext 和 readtext 来实现长字符串和二进制数据的操作。
晴天羽 回复于:2002-05-13 12:38:52
能否举个例子,谢谢您了。
陈苏文 回复于:2002-05-14 09:06:21
SYBASE SQL Server提供了两个语句去实现长二进制数据的操作,从而改善性能,并简化对文本和图像栏的访问。文本和图像数据存储在一系列独立的2kb的页链中,和行数据的其他部分是分开的。在行数据本身中,SQL Server存储一个指向文本或图像数据链开始的页指针。文本/图像语句writtext和readtext用该指针寻找页链,并能够直接地写入链中而不必修改其本行(为了做到这一点,用户必须已有一个非空的页指针存储在行中)。 用textptr()函数可检索某行的页指针。
如: declare @pageptr varbinary(16) select @pageptr=textptr(textstring) from texts where id=3 writetext texts.textstring @pageptr “Mary had a little lamb, its fleece was white as snow”
注意:所有的文本和图像操作,不论是用writetext手工进行的,还是用insert或update语句自动进行的,都要求两个物理步骤:SQL Server必须先找到本行中的页指针,然后到那一页并进行所要求的操作。
晴天羽 回复于:2002-05-14 09:34:03
有点看不懂,不太明白。我想用php方法把pdf插入数据库。你来做斑竹好了,回答的很好,只是我还没有看懂。/
晴天羽 回复于:2002-05-14 09:41:14
declare @pageptr varbinary(16) select @pageptr=textptr(textstring) from texts where id=3 writetext texts.textstring @pageptr “Mary had a little lamb, its fleece was white as snow” 看不太明白,。
陈苏文 回复于:2002-05-14 16:09:14
那个代码的意思是: 第一行定义了一个变量,用来保存页指针 第二行是给新定义的那个变量赋值, 就是找到你要插入的位置。 第三行是把第四行那一句话插入到表texts 的tesstring字段中去。 看看能不能明白?
lzhu 回复于:2002-05-14 18:23:30
1、这句有点不明白 select @pageptr=textptr(textstring) from texts where id=3 我的理解是textstring , id 是表texts的两个字段,其中textstring 定义为image类型,对吗? 2、如果是一个文件,则在后面写上文件的绝对路径:"/usr/bin/demo.txt",对吗? 请斑竹指点
陈苏文 回复于:2002-05-15 09:06:16
你的理解是正确的。 不过如果是文件的话,应该这样处理,首先打开文件,把文件的数据读到一个变量里,然后把变量的值,赋给那一字段。
晴天羽 回复于:2002-05-15 09:34:10
如果我有张表(texts),字段有(id,name,title,textstring(image类的),end),把socket.pdf插入texts表中的步骤为: 1.declare @pageptr varbinary(16) ; 2.打开文件,把文件的内容赋给变量@pageptr; 3.writetext texts.textstring @pageptr把数据写入texts,但其他数据怎么写如,就是name,title,end怎样放入。
陈苏文 回复于:2002-05-15 09:52:08
直接用insert就行了, 不过插入的时间对于textstring不能为空随便插入一个什么字符串就行, 然后再找到那个链表,就是你再仔细看一下我上面写的,看能不能理解了。
晴天羽 回复于:2002-05-15 10:28:58
select @pageptr=textptr(textstring) from texts where id=3 我不懂这句话的意思,id=3是什么意思。这好象是查询的意思,但为什么要把id=3的记录赋给pageptr变量,好奇怪。是不是这是赋值的意思,赋值后再插入。如果我用文件插入,就不要这句话了,对不对?
晴天羽 回复于:2002-05-15 10:41:34
忘了,怎样才能找到要插入的位置?
陈苏文 回复于:2002-05-15 11:27:42
你首先用insert插入了其他的数据以后,再用上面的方法插入大文本或图片。
lzhu 回复于:2002-05-15 14:23:04
请写一个完整的过程,假设文件是一个bmp文件(photo.bmp),将photo.bmp插入到表texts的textstring中,表的字段有(id,name,title,textstring(image类的),end) 其中id=3 ,name='smith', title='professor', end='20020515' photo.bmp是smith的照片文件,谢谢
mengle 回复于:2002-07-13 20:57:55
是不是应该把大对象放在最后面?
icebolt 回复于:2002-10-22 13:31:07
我想用php来实现,不在数据库中操作,可以吗
psgg 回复于:2002-10-22 15:10:03
请继续讨论下去,然后就是一篇经典的讲稿。我不懂但我在看,
icebolt 回复于:2002-10-23 12:04:14
讲稿?我正在做,做成了写篇文章给你吧
icebolt 回复于:2002-10-24 13:14:59
我遇到了这样的问题,用writetext写进去去了,在数据库中也能通过readtext读出来,但读出来的信息,怎么用php的函数调用出来呢?用sybase_query()发出readtext后,没办法用sybase_fetch_row()取出来。
icebolt 回复于:2002-10-24 13:16:57
希望高手指点,还有如果用image字段存储flash之类的东西,可以吗?
icebolt 回复于:2002-10-24 13:32:30
代码是这样的: $link=sybase_connect($hostname,$username,$password) or die("无法连接数据库服务器!"; $db=sybase_select_db($databasename,$link) or die("无法连接用户数据库—userdb!"; $query ="declare @val varbinary(16)\n"; $query.="select @val=textptr(textstring) from $tablename where id=2 \n"; $query.="readtext $tablename.textstring @val 1 1000"; $result=sybase_query($query) or die("无法执行SQL:$query"; $arr = sybase_fetch_array($result);
icebolt 回复于:2002-10-24 15:30:47
怎么取出来给php请各位高手指点
icebolt 回复于:2002-10-26 15:40:35
已经解决了,以后有问题的,请和我联系,谢谢大家对我的帮忙
晴天羽 回复于:2002-11-12 11:35:18
那我怎么才能把图片文件赋给变量testptr?就是说我不知道怎么使用readtext?
晴天羽 回复于:2002-11-13 10:44:54
用writetext时,该字段不能为空,就是teststring不能为空,不然不能插入数据,不知道这样说对不对?不过,不知道怎么用readtext操作。
晴天羽 回复于:2002-11-15 10:30:46
怎样打开文件?
icebolt 回复于:2002-11-21 15:24:15
你是说用php吗?
晴天羽 回复于:2002-11-25 16:09:39
用php和c++都可以的。
kateyan 回复于:2003-01-06 12:16:23
表的结构为(id,texttxt(text类的)),要将所有texttxt的值赋为id=1时的texttxt值,不知道语句该如何写
|