Jump to content

UniDBGrid:Out of memory


55143681

Recommended Posts

 

 

 

 

 

 

UniDBGrid1  <->  UniQuery1.  XE11.1+unigui1663

I add some code to UniDBGrid's OnCellClick events as follow:

 

UniQuery2->Close();
UniQuery2->SQL->Clear();
mySql="select wt_no 问题编号,..................................";
mySql+="rowid from xs_xswt where xs_year =:w1 and xs_name=:w2 and wt_no=:w3";
UniQuery2->SQL->Add(mySql);
UniQuery2->ParamByName("w1")->Value=UniComboBox1->Text;
UniQuery2->ParamByName("w2")->Value=UniComboBox2->Text;
UniQuery2->ParamByName("w3")->Value=UniQuery1->FieldByName("问题编号")->AsString;
UniQuery2->Open();

UniEdit1->Text=UniQuery2->FieldByName("问题编号")->AsString;
UniEdit2->Text=UniQuery2->FieldByName("问题描述")->AsString;
UniEdit3->Text=UniQuery2->FieldByName("整改建议")->AsString;

 

When I click UniDBGrid1,I get an error as follow.And my project works well with older version.


 

 

2022-07-12_143213.jpg

Link to comment
Share on other sites

  • 55143681 changed the title to UniDBGrid:Out of memory
On 7/12/2022 at 7:06 PM, Sherzod said:

Hello,

It's hard to say something from your code...

It seems like  that I can not select too many fields one time,

I select 28 fields from my table.

 

 

 

UniQuery2->Close();
UniQuery2->SQL->Clear();
mySql="select wt_no 问题编号,";
mySql+="wt_name 问题描述,wt_advice 整改建议,wt_pub1 是否同业共性问题,wt_pub2 同业共性问题描述,";
mySql+="wt_his1 是否历届巡视问题,wt_his2 历届巡视问题描述,wt_inst 问题归属机构,wt_bank1 主办行领导,";
mySql+="wt_bank2 协办行领导,wt_part1 主办部门,wt_part2 协办部门,wt_level 决策层级,wt_diff 难度系数,";
mySql+="wt_ask 整改时限要求类别,wt_dead 整改完成时限,wt_over 完成时间,wt_week 反馈周期,wt_days 周几反馈,";
mySql+="wt_fk_stat 完成状态,wt_fk_perc 已完成百分比,wt_fk_prog 主要进展,xs_year 巡视年度,xs_name 巡视名称,";
mySql+="wt_type1 问题大类,wt_type2 问题小类,wt_see1 是否重点关注,wt_see2 重点关注原因,";
//    mySql+="rowid from xs_xswt where xs_year =:w1 and xs_name=:w2  order by xs_year desc,xs_name,wt_no";
mySql+="rowid from xs_xswt where xs_year =:w1 and xs_name=:w2 and wt_no=:w3";
UniQuery2->SQL->Add(mySql);
UniQuery2->ParamByName("w1")->Value=UniComboBox1->Text;
UniQuery2->ParamByName("w2")->Value=UniComboBox2->Text;
UniQuery2->ParamByName("w3")->Value=UniQuery1->FieldByName("问题编号")->AsString;
UniQuery2->Open();

Link to comment
Share on other sites

On 7/14/2022 at 9:23 AM, 55143681 said:

It seems like  that I can not select too many fields one time,

I select 28 fields from my table.

 

 

 

UniQuery2->Close();
UniQuery2->SQL->Clear();
mySql="select wt_no 问题编号,";
mySql+="wt_name 问题描述,wt_advice 整改建议,wt_pub1 是否同业共性问题,wt_pub2 同业共性问题描述,";
mySql+="wt_his1 是否历届巡视问题,wt_his2 历届巡视问题描述,wt_inst 问题归属机构,wt_bank1 主办行领导,";
mySql+="wt_bank2 协办行领导,wt_part1 主办部门,wt_part2 协办部门,wt_level 决策层级,wt_diff 难度系数,";
mySql+="wt_ask 整改时限要求类别,wt_dead 整改完成时限,wt_over 完成时间,wt_week 反馈周期,wt_days 周几反馈,";
mySql+="wt_fk_stat 完成状态,wt_fk_perc 已完成百分比,wt_fk_prog 主要进展,xs_year 巡视年度,xs_name 巡视名称,";
mySql+="wt_type1 问题大类,wt_type2 问题小类,wt_see1 是否重点关注,wt_see2 重点关注原因,";
//    mySql+="rowid from xs_xswt where xs_year =:w1 and xs_name=:w2  order by xs_year desc,xs_name,wt_no";
mySql+="rowid from xs_xswt where xs_year =:w1 and xs_name=:w2 and wt_no=:w3";
UniQuery2->SQL->Add(mySql);
UniQuery2->ParamByName("w1")->Value=UniComboBox1->Text;
UniQuery2->ParamByName("w2")->Value=UniComboBox2->Text;
UniQuery2->ParamByName("w3")->Value=UniQuery1->FieldByName("问题编号")->AsString;
UniQuery2->Open();

 

 

Shezod:

It seems that my UniQuery2 can not select too many fields,otherwise it will give me an error "Out of memory"

you can see,If I only select 5 fields,it works well,

but if I select too many fields I have the error,

Why?

Is there some property need to setup?

 

The follow code works well.

 


void __fastcall TUniFormXSWT::UniDBGrid1CellClick(TUniDBGridColumn *Column)
{
//表格选择记录
String tmpStr;

if(UniDBGrid1->SelectedRows->Count==0)
    {
    return;
    }
//
UniQuery2->Close();
UniQuery2->SQL->Clear();
mySql="select wt_no 问题编号,";
mySql+="wt_name 问题描述,wt_advice 整改建议,wt_pub1 是否同业共性问题,wt_pub2 同业共性问题描述,";
mySql+="rowid from xs_xswt where xs_year =:w1 and xs_name=:w2 and wt_no=:w3";
UniQuery2->SQL->Add(mySql);
UniQuery2->ParamByName("w1")->Value=UniComboBox1->Text;
UniQuery2->ParamByName("w2")->Value=UniComboBox2->Text;
UniQuery2->ParamByName("w3")->Value=UniQuery1->FieldByName("问题编号")->AsString;
UniQuery2->Open();


UniEdit1->Text=UniQuery2->FieldByName("问题编号")->AsString;
UniEdit2->Text=UniQuery2->FieldByName("问题描述")->AsString;
UniEdit3->Text=UniQuery2->FieldByName("整改建议")->AsString;
UniComboBox5->Text=UniQuery2->FieldByName("是否同业共性问题")->AsString;
UniEdit4->Text=UniQuery2->FieldByName("同业共性问题描述")->AsString;


rowId=UniQuery1->FieldByName("rowid")->AsString;

}

Link to comment
Share on other sites

  • 3 weeks later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...