关于使用ADOquery1出现的有关问题

关于使用ADOquery1出现的问题?
偶在DataM数据模块中,加入了一个共用的ADOquery1,还在公共文件pub.pas中做了一个ComBind,和一个GetSql函数,在数据量小的时候没问题,但数据量大时,出现不ADO不明的错误,以及 "异步中不能执行 "....

偶另外做了几个ADOquery1,一个函数用一个ADOquery1后,有时出错,有时不出错..我狂晕....

高人帮看看....谢了..

//取得SQL返回值
function   GetSql(Val:string;sqlstr:string):string;
begin
                with   DataM.q4   do
                begin
                        Close;
                        sql.Clear;
                        sql.Add(sqlstr);
                        Open;
                        if   RecordCount> 0   then
                                Result   :=FieldByName(Val).AsString
                        else
                                Result:= ' ';
                end  
end;

//绑定Combobox数据
procedure   ComBind(str:string;comb1:TComboBox;val:string);
begin
          try
                with   Datam.q6   do
                begin
                        close;
                        sql.Clear;
                        sql.Add(str);
                        Open;
                        if   RecordCount> 0   then
                        while   not   eof   do
                        begin
                                comb1.Items.add(FieldValues[val]);
                                Next;
                        end;
                end
        except

        end;

end;


------解决方案--------------------
建议少用ADOQUERY 用ADODATASET!
------解决方案--------------------
看上去没啥问题,会不会使用查询的时间过于频密了,或者查询有重复了。
你说共用了一个Adoquery1,但你后面又有q4, q6?

另:骑牛上北京:请问为什么多用AdoDataSet,而少用AdoQuery呢?能详细说说根据吗?

QQ:22165983
------解决方案--------------------
要看你的sql.Add(sqlstr)语句中的sqlstr是什么了,不是所有的sql语句都可以open的.

------解决方案--------------------