在字符串编辑器中使用Lazarus IDE 1.014中的TAdsquery组件(11.1),并使用以下语法。只有在设计模式下并且设置为活动状态时,查询才能在DBgrid中正常工作。它也适用于Advanatge Data Archetect。 但是,在编译期间或编译后尝试从代码中打开它,代码或组件会给我一个'无法获得句柄错误'。 (尝试两种方式)检查所有的表,他们似乎确定。 (查询中涉及4个表格)。以下是在字符串编辑器中查询: 选择 FOOD_DES.Long_Desc, NUTR_DEF.NutrDesc, NUT_DATA.Nutr_No, NUT_DATA.Nutr_Val, NUT_DATA.Num_Data_Pts, NUT_DATA.Std_Error, NUT_DATA.Src_Cd, NUT_DATA。 Deriv_Cd, SYNC.NDB_no作为NDB_no1 从 FOOD_DES内加入 SYNC在FOOD_DES.NDB_No = SYNC.NDB_no, NUTR_DEF, NUT_DATA 其中 NUTR_DEF.Nutr_No = NUT_DATA.Nutr_No而 NUT_DATA.NDB_No = SYNC.NDB_no 顺序按 NDB_no1Adsquery句柄错误
这是我的代码打开它的尝试,但我得到同样的“处理错误”
adsQuery1.Close;{close the query}
//assign new SQL expression
adsQuery1.SQL.Clear;
adsQuery1.SQL.Add ('Select FOOD_DES.Long_Desc,NUTR_DEF.NutrDesc,NUT_DATA.Nutr_No,NUT_DATA.Nutr_Val,NUT_DATA.Num_Data_Pts,NUT_DATA.Std_Error,NUT_DATA.Src_Cd,NUT_DATA.Deriv_Cd,SYNC.NDB_no As NDB_no1');
adsQuery1.SQL.Add ('FROM FOOD_DES Inner Join SYNC On FOOD_DES.NDB_No = SYNC.NDB_no, NUTR_DEF,NUT_DATA');
adsQuery1.SQL.Add ('WHERE NUTR_DEF.Nutr_No = NUT_DATA.Nutr_No And NUT_DATA.NDB_No = SYNC.NDB_no');
adsQuery1.RequestLive := true;
adsQuery1.Open;
任何帮助,将不胜感激。不知道我是否在属性对话框和/或代码中正确设置了所有参数。这些组件是Adsquery1链接到Datasource13和DBgrid1。