55143681 Posted July 12, 2022 Share Posted July 12, 2022 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. Link to comment Share on other sites More sharing options...
Sherzod Posted July 12, 2022 Share Posted July 12, 2022 3 hours ago, 55143681 said: When I click UniDBGrid1,I get an error as follow.And my project works well with older version. Hello, It's hard to say something from your code... Link to comment Share on other sites More sharing options...
55143681 Posted July 14, 2022 Author Share Posted July 14, 2022 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 More sharing options...
55143681 Posted July 16, 2022 Author Share Posted July 16, 2022 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 More sharing options...
55143681 Posted July 16, 2022 Author Share Posted July 16, 2022 Maybe that is UniDAC's bug. Link to comment Share on other sites More sharing options...
55143681 Posted July 16, 2022 Author Share Posted July 16, 2022 Oh,UniDAC new version cause the problem. In my project,I like set UniQuery's fetchRows=65535, then I have the error, If I change the parameter to 25, It works well. 1 Link to comment Share on other sites More sharing options...
albertovesx Posted August 2, 2022 Share Posted August 2, 2022 On 7/15/2022 at 8:39 PM, 55143681 said: Oh,UniDAC new version cause the problem. In my project,I like set UniQuery's fetchRows=65535, then I have the error, If I change the parameter to 25, It works well. Hi, Which uniDAC Versión number? Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now