我是用个动态链接库操作数据库。要把“同一内容”更新到2张表中,其中一张表使可以的,但是另外一张表确只能添加一部份内容,意思是说它在添加第二张表的时候截断了一部分再添加!我2张表要更新的字段长度是一样的。问题是什么呢?大家见过么?帮帮我好么?下面是我动态链接库中的代码!
function ChangeClass(ADOQuery1:TADOQuery;PClass:string;CClass:string):boolean;export;
var
ClsID:Integer;
temp:string;
begin
ChangeClass := false;
if (trim(CClass) <> '') then
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from ClsInfo where PClass=:PClass and CClass=:CClass');
Parameters.ParamByName('PClass').Value := trim(PClass);
Parameters.ParamByName('CClass').Value := trim(CClass);
Open;
ClsID := FieldByName('ID').AsInteger;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Update ChdInfo Set ClassName=:ClassName where ClassID=:ClassID');
Parameters.ParamByName('ClassName').Value := (trim(PClass)+' '+trim(CClass));
Parameters.ParamByName('ClassID').Value := ClsID;
ExecSQL;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Update ChdIO Set ClassName=:ClassName where ChildID in(Select ID from ChdInfo where ClassID=:ClassID)');
Parameters.ParamByName('ClassName').Value := (trim(PClass)+' '+trim(CClass));
Parameters.ParamByName('ClassID').Value := ClsID;
ExecSQL;
ChangeClass := true;
end;
end;
end;
function ChangeClass(ADOQuery1:TADOQuery;PClass:string;CClass:string):boolean;export;
var
ClsID:Integer;
temp:string;
begin
ChangeClass := false;
if (trim(CClass) <> '') then
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from ClsInfo where PClass=:PClass and CClass=:CClass');
Parameters.ParamByName('PClass').Value := trim(PClass);
Parameters.ParamByName('CClass').Value := trim(CClass);
Open;
ClsID := FieldByName('ID').AsInteger;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Update ChdInfo Set ClassName=:ClassName where ClassID=:ClassID');
Parameters.ParamByName('ClassName').Value := (trim(PClass)+' '+trim(CClass));
Parameters.ParamByName('ClassID').Value := ClsID;
ExecSQL;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Update ChdIO Set ClassName=:ClassName where ChildID in(Select ID from ChdInfo where ClassID=:ClassID)');
Parameters.ParamByName('ClassName').Value := (trim(PClass)+' '+trim(CClass));
Parameters.ParamByName('ClassID').Value := ClsID;
ExecSQL;
ChangeClass := true;
end;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货