A:TClientDataset;
B:TClientDataset;
现在假设A已经存在数据
B.data:=A;
那么,现在操作B,
B.fieldbyname('Memo').asstring:=Str;//Str长度大于255
Memo在数据库中的类型是varchar(8000)
现在的问题是,B.fieldbyname('Memo').asstring获取的值得从255开始截取了,
不知道怎么办
B:TClientDataset;
现在假设A已经存在数据
B.data:=A;
那么,现在操作B,
B.fieldbyname('Memo').asstring:=Str;//Str长度大于255
Memo在数据库中的类型是varchar(8000)
现在的问题是,B.fieldbyname('Memo').asstring获取的值得从255开始截取了,
不知道怎么办
B.fieldbyname('Memo').Value
CDSMx.Fieldbyname('Fprodmemo').datasize 是只读属性,不能更改,有没有其他的方法??
如果是ADO,到是没什么问题,但现在中间层用的是BDE,好象怎么也不能抄过256
function TDataSnapModuleFXS.CreateBDECons(linkcode:string):TDataBase;
var
i:integer;
tmpBDEConnection,tmpBDEConnection_a: TDatabase;
tmpBDECons : TBDECons;
begin
if ConnecNum = 10000 then ConnecNum :=0;
ConnecNum := ConnecNum+1; try
i := BDEConnectionItems.IndexOf(trim(linkcode));
if (i > -1 ) and (trim(BDEConnectionItems.Strings[i])=trim(linkcode)) then
begin
tmpBDEConnection_a := BDEConnectionItems.Objects[i] as TDataBase;
try
//BDE连接
tmpBDEConnection := TDatabase.Create(self);
tmpBDEConnection.Name := 'BDE'+trim(FormatDateTime('yyyymmddhhmmsszzz',Now))+trim(inttostr(ConnecNum));
tmpBDEConnection.DatabaseName := 'BDEDB'+trim(FormatDateTime('yyyymmddhhmmsszzz',Now))+trim(inttostr(ConnecNum));
tmpBDEConnection.LoginPrompt := False;
tmpBDEConnection.DriverName :='MSSQL';
tmpBDEConnection.Params.Clear;
tmpBDEConnection.Params.AddStrings(tmpBDEConnection_a.Params);
tmpBDEConnection.Connected := true;
result := tmpBDEConnection;
//创建BDE连接对象
tmpBDECons := TBDECons.Create(self);
tmpBDECons.Fzhangtaobhan := trim(linkcode);
tmpBDECons.FBDEcon :=tmpBDEConnection;
except
result := nil;
end;
end
else result := nil;
except
result := nil;
end;
end;没用过ODBC,各位帮帮忙!
明白了。这是BDE的问题。把字改成TEXT应该可以。