delphi dm.ADOQuery1:missing SQL property

procedureTRptSingle.btnSchClick(Sender:TObject);varstr1,str2,str3,str4,strGuid2:Strin... procedure TRptSingle.btnSchClick(Sender: TObject);
var
str1, str2, str3, str4, strGuid2: String;
strGuid1: TGUID;
begin
str1 := 'select b.ID_,b.sequence_,b.Code_,b.Name_,b.Spec_,'
+'b.Unit_,b.Count_ ,h.DocumentDate_,h.Number_,h.Sort_,h.Personnel_ '
+'from Single_Head h join Single_Body b on h.ID_ = b.ID_ where 1 = 1 ';
ADOQuery1.Open;
if chkCode.Checked then
str2 := Format(' and Code_ = ''%s''', [Trim(edtCode.Text)]);
if chkSort.Checked then
str3 := Format(' and Sort_ = ''%s''', [Trim(edtSort.Text)]);
if chkName.Checked then
str4 := Format(' and Name_ = ''%s''', [Trim(edtName.Text)]);
ADOQuery1.SQL.Text := str1 + str2 + str3 + str4;
ADOQuery1.Post;
DateTimePicker1.Date := StrToDate(FormatDatetime('yyyy/mm',now)+'/01');
DateTimePicker2.Date := StrToDate(FormatDateTime('yyyy/mm', now)+'/01');
if CreateGUID(strGuid1) = S_OK then
strGuid2 := GUIDToString(strGuid1);
ADOQuery1.FieldByName('ID_').AsString := strGuid2;

请问这是什么原因?
展开
 我来答
xk1588998
2012-06-15
知道答主
回答量:19
采纳率:0%
帮助的人:11.7万
展开全部
ADOQuery1.Open;
在此类语句前面通常你的看看ADOQuery1有没有初始SQL语句存在(就是SQL属性里面有没有写语句)如果没有初始语句就得再打开ADOQuery1前给其SQlp属性赋值eg:ADOQuery1.Sql.add(str1 ); 此外你得学会跟踪程序的错误出现在具体哪句也好方便问题回答者帮你检查语句
rich556677
2012-06-15 · TA获得超过2028个赞
知道小有建树答主
回答量:1365
采纳率:0%
帮助的人:898万
展开全部
这样就行了,前提 是 ADOQuery1已经设置正确的连接
ADOQuery1.sql.text := 'select b.ID_,b.sequence_,b.Code_,b.Name_,b.Spec_,'
+'b.Unit_,b.Count_ ,h.DocumentDate_,h.Number_,h.Sort_,h.Personnel_ '
+'from Single_Head h join Single_Body b on h.ID_ = b.ID_ where 1 = 1 ';
ADOQuery1.Open;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式