以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 备注截短问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92160)
|
-- 作者:douglas738888
-- 发布时间:2016/10/27 16:33:00
-- 备注截短问题
请教老师,搭接SQLSERVER服务器,在窗口表中的备注输入500字符,被提示自动截短为225字符 操作列被允许的最大长度255
服务器上的备注数据类型自动设置的是NVARCHAR(MAX)是可以小于8000字符的,且可最大存为2G容量
表中的列属性设置的也是备注型, 窗口设计的TEXT设置的是多行文本TRUE 最大字符32767
请问是哪里的问题???
[此贴子已经被作者于2016/10/27 16:52:16编辑过]
|
-- 作者:有点蓝
-- 发布时间:2016/10/27 17:01:00
--
窗口表是副本还是其它的?窗口表如何生成的?
|
-- 作者:douglas738888
-- 发布时间:2016/10/27 17:07:00
--
窗口中用的正本,上部是TEXT录入控件绑定到正本表的列 下部是正本表 项目启动后就加载表进来
[此贴子已经被作者于2016/10/27 17:09:43编辑过]
|
-- 作者:有点蓝
-- 发布时间:2016/10/27 17:13:00
--
确定列类型是备注型,而不是字符型的
|
-- 作者:douglas738888
-- 发布时间:2016/10/27 17:16:00
--
是的,单机版接本机ACCESS测试没有问题;现在搭上服务器SQLSERVER 就报错自动截短。
|
-- 作者:有点蓝
-- 发布时间:2016/10/27 17:18:00
--
备份项目和代码,去掉这个外部表重新添加试试
|
-- 作者:douglas738888
-- 发布时间:2016/10/27 20:29:00
--
老师,还是不行,做了个没有任何代码的窗口测试也是这样, 但是在项目设计里面通过外部数据表加载数据库的表进来,点击列...的按钮添加内容没有任何提示,正常。
就是在窗口录入数据 和在窗口里面的表(有备注列)添加内容就错误提示。 经测试,项目中所有设置为备注类型的表和TEXT多行文本都存在同样的问题
此主题相关图片如下:未标题-1.jpg
[此贴子已经被作者于2016/10/27 20:37:22编辑过]
|
-- 作者:有点蓝
-- 发布时间:2016/10/27 20:59:00
--
我测试没有如何问题哦。不管是在狐表创建的表还是直接在sql数据库创建的表都没有问题,也试过正本,sqltable;绑定正本绑定窗口表都没有问题。
估计是你的项目本身有问题了。创建新项目试试有没有这个问题。
最后上传你的项目看看。
|
-- 作者:douglas738888
-- 发布时间:2016/10/28 11:48:00
--
老师,问题找到了,在编写系统操作日志里面的代码的时候出现的,现在的问题是,在项目设计里面的表备注添加超过225字符没有问题,就是在窗口的正本TEXT或者
正本TABLE的备注添加就报错截短
应该是这段代码有问题,不启用就不出现截短问题,但是无法记录信息了,请老师看看
If e.DataTable.Name <> "系统数据日志" Then
If e.DataRow.RowState = 2 Then Return Else Dim dr As DataRow = DataTables("系统数据日志").AddNew dr("ID") = e.DataRow("_Identify") dr("用户") = _UserName dr("涉及表") = e.DataTable.Name dr("涉及列") = e.DataCol.Name dr("涉及行") = e.DataRow("_Identify") dr("时间") = Date.Now dr("操作") = """" & e.OldValue & """ 改成了 """ & e.NewValue & """" Dim str As String = "" For Each c As DataCol In e.DataTable.DataCols str += c.Name & "=" & e.DataRow(c.Name) & "|" Next dr("原行数据") = str End If End If
|
-- 作者:有点蓝
-- 发布时间:2016/10/28 12:02:00
--
"操作"列改为备注咯
另外nvarchar(max)最多4000个字符,超过要用ntext
|