关于网友提出的“ 数据库判断的问题呢,高手们,帮帮忙,几天了~~~”问题疑问,本网通过在网上对“ 数据库判断的问题呢,高手们,帮帮忙,几天了~~~”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 数据库判断的问题呢,高手们,帮帮忙,几天了~~~
描述: 程序编译能通过,然后程序运行时,提示我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: ADOQuery2.SQL.add('select 名称 from [sheet1$] where 名称 not in(select fullname from Pub_Btype)');
有这个PUB_Btype 这个表吗?
以上介绍了“ 数据库判断的问题呢,高手们,帮帮忙,几天了~~~”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3180578.html