delphi ADOQuer 数据库连接老报错。。。
除了可以查询 其他的都不行,报错说 tChildren 附近有语法错误。
[解决办法]
很久以前也用过这个写法,我当时是循环插入数据的过程,确实可以提高执行效率,我把我以前的代码贴出来你看一下,供你参考:
vQryTemp := TADOQuery.Create(nil);
vQryTemp.Connection := ConMain;
vQryTemp.SQL.Text := 'Insert Into T_projectSub(iPSubID,ProjectDepID,M_SubIn,M_SubOut,M_Subbalance,IsKZ) Values('+
':iPSubID,:ProjectDepID,:M_SubIn,:M_SubOut,:M_Subbalance,:IsKZ)';
with qryTemp do //加载每个科目的余额信息
begin
Close;
SQL.Text := 'SELECT * FROM T_Subjects WHERE (IsActive = 1) and (SubjectID not in (select iPSubID from T_projectSub where ProjectDepID='''+viDepID+'''))';
Open;
if RecordCount>0 then
begin
IniPrass(RecordCount);
While not Eof do
begin
vQryTemp.Close;
vQryTemp.Parameters.ParamByName('iPSubID').Value := FieldByName('SubjectID').AsString;
vQryTemp.Parameters.ParamByName('ProjectDepID').Value := viDepID;
vQryTemp.Parameters.ParamByName('M_SubIn').Value := 0;
vQryTemp.Parameters.ParamByName('M_SubOut').Value := 0;
vQryTemp.Parameters.ParamByName('M_Subbalance').Value := viDepBalance;
vQryTemp.Parameters.ParamByName('IsKZ').Value := '0';
vQryTemp.Prepared := True ;
vQryTemp.ExecSQL;
StepByOne;
Next;
end;
EndPrass;
end;
end;