您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 数据库判断的问题呢,高手们,帮帮忙,几天了~~~

数据库判断的问题呢,高手们,帮帮忙,几天了~~~

来源:网络整理     时间:2016/8/10 7:46:47     关键词:

关于网友提出的“ 数据库判断的问题呢,高手们,帮帮忙,几天了~~~”问题疑问,本网通过在网上对“ 数据库判断的问题呢,高手们,帮帮忙,几天了~~~”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 数据库判断的问题呢,高手们,帮帮忙,几天了~~~
描述:

程序编译能通过,然后程序运行时,提示我Pub_Btype不存在!!!高手们看看我下面的代码哪儿出了问题啊!!!我改了很久了!!
procedure TForm1.RzBitBtn1Click(Sender: TObject);
var
  iNo:Integer;
  sGUID,strNo:string;
  TmpGUID:TGUID;
begin
  with ADOQuery2 do
  begin
    ADOQuery2.SQL.clear;
    ADOQuery2.SQL.add('select * from [sheet1$]');
    ADOQuery2.Open;
    ADOQuery2.First;
  end;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.add('select * from Pub_Btype');
  ADOQuery1.Open;
  iNo:=1;
  ADOQuery3.SQL.Clear;
  ADOQuery3.SQL.add('select * from Pub_Btype_Assist');
  ADOQuery3.Open;
try
begin
 ADOQuery2.SQL.clear;
 ADOQuery2.SQL.add('select 名称 from [sheet1$] where 名称 not in(select fullname from Pub_Btype)');
 ADOQuery2.Open;
 ADOQuery2.First;
   with Adoquery2 do while not eof do
   begin
     if CoCreateGUID(TmpGUID) = S_OK then
      sGUID := GUIDToString(TmpGUID);
    ADOQuery1.Append;
    ADOQuery3.Append;
     strNo:='00001'+Format('%.5d',[iNo]);
    //strNo:='0000'+IntToStr(iNo);
    inc(iNo);
    ADOQuery1.FieldByName('BTypeID').AsString:=strNo;
    ADOQuery1.FieldByName('_id').asstring:=sguid;
    ADOQuery1.FieldByName('parid').AsString:='00001' ;
    ADOQuery1.FieldByName('_Level').AsString:='2' ;
    ADOQuery1.FieldByName('Modetype').AsString:='1' ;
    ADOQuery1.FieldByName('PriceType').AsString:='preprice1' ;
    ADOQuery1.FieldByName('FullName').asstring:=adoquery2.fieldbyname('名称').asstring;
    ADOQuery1.FieldByName('UserCode').asstring:=Format('%.4d',[ADOQuery2.fieldbyname('编码').AsInteger]);
    ADOQuery1.FieldByName('abbrName').asstring:=adoquery2.fieldbyname('简码').asstring;
    ADOQuery1.FieldByName('Comment').asstring:=adoquery2.fieldbyname('备注').asstring;
    GetAddAndTel(ADOQuery2.fieldbyname('地址电话').Asstring,add,teli);
    GetbankAndaccount(ADOQuery2.fieldbyname('银行帐号').Asstring,banki,accounti);
    ADOQuery3.FieldByName('BID').asstring:=ADOQuery1.FieldByName('_id').asstring;
    ADOQuery3.FieldByName('TaxNumber').asstring:=ADOQuery2.fieldbyname('税号').asstring;
    ADOQuery3.FieldByName('Bank').asstring:=banki;
    ADOQuery3.FieldByName('Account').asstring:=accounti;
    ADOQuery3.FieldByName('Address').AsString := add;
    ADOQuery3.FieldByName('Tel').AsString := teli;
    next;
    end;
    if AdoQuery1.state in [dsinsert,dsEdit] then ADOQuery1.Post;
  if AdoQuery3.state in [dsinsert,dsEdit] then ADOQuery3.Post;
  showmessage('添加成功!');
    end;
except
    next;
end;
end;


解决方案1:

ADOQuery2.SQL.add('select 名称 from [sheet1$] where 名称 not in(select fullname from Pub_Btype in '+QuotedStr(另一个库路径)')'); 

解决方案2:

引用 3 楼 yangsijia2008 的回复:
ADOQuery2 里面没有Pub_Btype,但是我必须要从这个Pub_Btype表里面判断啊!~~我想问题应该是你说的没错了,但是我该怎么改呢???

你是不是跨库查询呀 解决方案3:

ADOQuery2.SQL.add('select 名称 from [sheet1$] where 名称 not in(select fullname from Pub_Btype)'); 
有这个PUB_Btype  这个表吗?


以上介绍了“ 数据库判断的问题呢,高手们,帮帮忙,几天了~~~”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3180578.html

相关图片

相关文章