ACCESS中奇怪的問題!

2021-04-18 00:09:58 字數 1898 閱讀 9265

前幾天寫了個函式:

//函式說明:根據id欄位比較兩個access資料庫中的資料表中的記錄異同

//  p1    第乙個資料庫

//  p2    第二個資料庫

//  tname 要對比的資料表名

function comprecordbyid(adoquery:tadoquery;p1,p2,tname:string):boolean;

varsqlstr:string;

begin

sqlstr:='select * from ('+

'select t1.id,t2.id from ['+p1+'].'+tname+' as t1 left join '+tname+' as t2 on t1.id=t2.id '+

'union '+

'select t1.id,t2.id from ['+p1+'].'+tname+' as t1 right join '+tname+' as t2 on t1.id=t2.id'+

') '+

'where t1.id is null '+//第乙個資料庫中沒有的記錄

'or t2.id is null';    //第二個資料庫中沒有的記錄

adoquery.close;

adoquery.connectionstring:='provider=microsoft.jet.oledb.4.0;data source='+p2+';persist security info=false';

adoquery.sql.text:=sqlstr;

adoquery.open;

end;

以上函式在使用時發現一些未知的怪異問題,在delphi中報異常,不能正常使用,但同樣的sql語句在access資料庫中執行卻沒有任何部題,開始以為是語句有問題,但更離譜的事發生了,把正常的語句在access中的查詢中儲存後,關閉,再開啟,執行語句沒問題,剪下,再貼上回去,不做任何修改,但卻不能執行了,報檔名不對的錯誤,原因不明,經過多次測試,做了些修改,終於能正常使用了,姑且認為是access的bug吧。

修改後的函式:

function comprecordbyid(adoquery:tadoquery;p1,p2,tname:string):boolean;

varsqlstr:string;

begin

sqlstr:='select * from ('+

'select t1.id,t2.id from '+

'(select id from '+tname+' in '''+p1+''') as t1 '+

'left join '+tname+' as t2 on t1.id=t2.id '+

'union '+

'select t1.id,t2.id from '+

'(select id from '+tname+' in '''+p1+''') as t1 '+

'right join '+tname+' as t2 on t1.id=t2.id'+

') '+

'where t1.id is null '+//第乙個資料庫中沒有的記錄

'or t2.id is null';    //第二個資料庫中沒有的記錄

adoquery.close;

adoquery.connectionstring:='provider=microsoft.jet.oledb.4.0;data source='+p2+';persist security info=false';

adoquery.sql.text:=sqlstr;

adoquery.open;

end;

奇怪奇怪的問題

由於需求,我自己寫了乙個mydialog extends dialog 在dialog裡面寫了乙個handler,用來更新dialog上的字。第二次更新介面,需要dialog比第一次變大點。可是dialog在activity裡面顯示,如果activity不掛後台的話,更新很正常。但是我把activi...

MS Jet中奇怪的問題?

kanas.net 1.3在緊張的測試中。為了保證資料庫支援的中立性,採用sql標準實現最差的ms jet ms access 2000格式載體,使用ado.net的oledb引擎 以往這種資料庫配置用得比較少,對其特異性嚴重掌握不夠,導致排錯效率不高。其中有乙個testcase出現的bug狂找了乙...

odoo views中html的奇怪問題

在我建立了字段型別為 fields.html 以後,確出現了兩種不同的情況 下圖中,content是此型別的,可以正常顯示不需要加widget 小部件 html form sheet group group field name name required 1 group group field n...