我的程序里面要在FormCreate时执行一条查询,根所查询的结果动态的添加菜单等操作,实现如下:
procedure TForm1.FormCreate(Sender: TObject);
begin
AstaClientSocket1.Active := True; AstaClientDataSet1.Close;
AstaClientDataSet1.SQL.Text := 'Select * From CustomMenu';
AstaClientDataSet1.Open;
// ShowMessage('有这句就正常');
AstaClientDataSet1.First;
while not AstaClientDataSet1.Eof do
begin
{执行相关操作}
Caption := Caption+AstaClientDataSet1.FieldByName('Name').AsString;
AstaClientDataSet1.Next;
end;
end;
我的表和字段都是存在的,ShowMessage('有这句就正常');如果不屏蔽则正常,
我估计是AstaClientDataSet1.Open之后数据还没有真正取得,
ShowMessage后因为多花了时间,等关了ShowMessage时数据就取得了问题是现在我的程序不可能每次都这样弹出一个框才能用啊,一定有解决办法,请知道的兄弟不吝赐教。
procedure TForm1.FormCreate(Sender: TObject);
begin
AstaClientSocket1.Active := True; AstaClientDataSet1.Close;
AstaClientDataSet1.SQL.Text := 'Select * From CustomMenu';
AstaClientDataSet1.Open;
// ShowMessage('有这句就正常');
AstaClientDataSet1.First;
while not AstaClientDataSet1.Eof do
begin
{执行相关操作}
Caption := Caption+AstaClientDataSet1.FieldByName('Name').AsString;
AstaClientDataSet1.Next;
end;
end;
我的表和字段都是存在的,ShowMessage('有这句就正常');如果不屏蔽则正常,
我估计是AstaClientDataSet1.Open之后数据还没有真正取得,
ShowMessage后因为多花了时间,等关了ShowMessage时数据就取得了问题是现在我的程序不可能每次都这样弹出一个框才能用啊,一定有解决办法,请知道的兄弟不吝赐教。
解决方案 »
- delphi 7提供一些基于TCP/IP编程的网络组件问题?
- delphi7维护SQL
- case语句如何判断一个变量的值?
- 如何实现图片呀窗体的无闪烁,请大家帮忙.
- 请教高手关于Dll的问题?
- 请问哪里有<<delphi 5.0 开发人员指南>>附的光盘源码下载?
- 初学者请问一个简单的问题(关于脚本)
- 如何激活外部程序?
- 如何得到指定窗口中的各个控件的HWND????????
- 请问各位大侠,这个问题如何解决? access 不支持连接表达式(sql连接表达式的问题)?(access数据库)
- 谁有HemisphereButton这个控件啊? 急用,非常感谢!
- 在Delphi里如何快速插入几个相同的部件呢?
i:Integer;
begin
.....
i:=0;
while True do
begin
if (AstaClientDataSet1.RecordCount>0) or (Inc(i)>1000) then
break;
end; 试试看行不行,如果取了1000次还不行,那就当出错处理吧
while True do
begin
Inc(i) ;
if (AstaClientDataSet1.RecordCount>0) or (I>1000000) then
break;
end;这样都不行
procedure TForm1.FormCreate(Sender: TObject);
begin
AstaClientSocket1.Active := True; AstaClientDataSet1.Close;
AstaClientDataSet1.SQL.Text := 'Select * From CustomMenu';
AstaClientDataSet1.Open;
Application.ProcessMessages;
AstaClientDataSet1.First;
while not AstaClientDataSet1.Eof do
begin
{执行相关操作}
Caption := Caption+AstaClientDataSet1.FieldByName('Name').AsString;
AstaClientDataSet1.Next;
end;
end;问题自己解决了,不知道取大数据量的时候能不能行,以后看看吧,看还有没有别人更好的解决方法。
试试
procedure TForm1.FormCreate(Sender: TObject);
begin
AstaClientSocket1.Active := True; AstaClientDataSet1.Close;
AstaClientDataSet1.SQL.Text := 'Select * From CustomMenu';
AstaClientDataSet1.Open;
sleep(1000);//停1秒
AstaClientDataSet1.First;
while not AstaClientDataSet1.Eof do
begin
{执行相关操作}
Caption := Caption+AstaClientDataSet1.FieldByName('Name').AsString;
AstaClientDataSet1.Next;
end;
end;