我对字段有Insufficient memory
错误。我需要使用从 0 到 8000 的字符串长度 - 但在填充.TClientDataset
TStringField
TClientDataset
那么,可以TStringField
用动态创建Size
吗?
PS最初的任务是将TDBGrid复制到TClientDataset。
我对字段有Insufficient memory
错误。我需要使用从 0 到 8000 的字符串长度 - 但在填充.TClientDataset
TStringField
TClientDataset
那么,可以TStringField
用动态创建Size
吗?
PS最初的任务是将TDBGrid复制到TClientDataset。
您在这些字段中存储什么样的数据需要最多 8000 个字符?
想象一下,您使用通配符对这些字段进行部分搜索。我敢打赌,这样的搜索需要很长时间,甚至可能使您的数据库服务器崩溃。
此外,并非所有数据库表都支持 8192 个字符大小的字符串字段。
http://docwiki.embarcadero.com/Libraries/XE6/en/Data.DB.TStringField
TStringField 封装了包含字符串数据的字段共有的基本行为。字符串字段的值物理存储为最多 8192 个字符的序列。但是,某些表类型可能只支持较小维度的字符串字段。
那么为什么不使用 TMemoFields 来代替它们,因为它们允许文本的动态大小呢? http://docwiki.embarcadero.com/Libraries/XE6/en/Data.DB.TMemoField
我使用了以下解决方案。Sizes
首先,根据计算最大值Length(aDBGrid.Columns[i].Field.DisplayText)
。然后TStringFields
用计算出来的Sizes
.
PS最初的任务是将TDBGrid复制到TClientDataset。