请教高手!!如何通过Delphi中的TStoredProc来向MSSQL输入一个很大的参数?(200分)

  • 主题发起人 主题发起人 oa_fish
  • 开始时间 开始时间
O

oa_fish

Unregistered / Unconfirmed
GUEST, unregistred user!
为了在数据库中的一个字希中存储很多的文本信息。
MSSQL中的varchar类型可以存储最多8000个字节。
而用TStoredProc中的Params中的Value只能输入255字节内(我现在试了很多类型)。
 
怎么没有人留点东西啊!:(
 
loadfromfile
 
难道还不够,不够的话
可以分开吗,由一个分成几个不就行了。
 
直接用SQL,或用表控件存吧,别用存储过程了
 
是的,用TABLE(或ADOTABLE)+DBMEMO就行了,好象存储过程干不了这个。
 
上面两位兄弟说的我去试了。
不过还是不能正确输入。
我在对DBMEMO进行赋值时,DBMEMO.TEXT中的值都还是对的。
可是在我用TABLE.Post后,再去MSSQL中看字段又被自动截短了。

这是为什么?
 
那麼你的這個SQL字段是不是Text型的呢
 
不是,是一个长度为7000的Varchar.
当然也请楼上的兄弟说一说,如果用TEXT和VARCHAR有在操作在要注意什么?
 
因為你要存這麼長的東西,估計也是一篇文章或者備註等東西了,不會是用來標識這條紀錄
的關鍵性字段,所以還是用Text型好點,在使用上當然沒有Varchar型這麼直接了,
例如在DBGrid裡面就不一定能顯示出來
不過在效率上也比這麼長的Varchar好

其實也沒有甚麼特別注意的呀,你看看資料比較一下吧
 
可以推荐点资料吗?有关使用TEXT类型的使用帮助。
 
推荐使用TEXT类型,这个类型字段有很多优点,比如它可以根据内容的长短确定实际使用的磁盘空间
可以存储用DBRichEdit编辑的带格式的文字内容,而Varchar类型则是难于做到的。.
 
确实如果是作为备注或是文本存储的话,应该是TEXT比VARCHAR好。
我以前没有用过TEXT字段类型。
能否推荐一下在DELPHI中使用方法的资料?
 
不行,我这还是不能插入一个TEXT的字段。
那有相关的资料呢?谁能推荐一下?先谢谢啦。
 
那谁有使用TEXT类型字段的Delphi代码?

能否贴一个例子出来啊!
 
//我在对DBMEMO进行赋值时,DBMEMO.TEXT中的值都还是对的。
//可是在我用TABLE.Post后,再去MSSQL中看字段又被自动截短了。
把TABLE中字段Varchar类型改成TEXT类型就可以了。
 
一个例子:
控件:Memo1,Query1,
表名:tab
字段:field1 类型:text
其它:需要定义 tempstr :TStringStream;

Query1.Sql.text := 'insert into tab(field1) values(:tempf)';
tempstr :=TStringStream.Create('');//创建一个文本流
Memo1.lines.SaveToStream(tempstr);//将Memo1内容写入文本流
Query1.ParamByName('tempf').LoadFromStream(tempstr,ftMemo);//通过tempf参数传入文本流
Query1.ExecSQL;
 

Similar threads

后退
顶部