Delphi寫的資料同步程式提示「記憶體不足」

2021-06-20 23:20:14 字數 794 閱讀 4901

之前有做乙個資料同步程式,a庫是業務庫,b庫是臨時庫,臨時庫是給別人用的,裡面的錶比a庫少,也就2、30張,裡面有2張表,其他的都是普通資料表。 

我做好的同步程式的功能就是同步a庫中的業務資料到b庫,b庫沒有則新增,有則修改。但是從開始到前幾天一直有乙個表不能同步,到這個表就報記憶體錯誤,困擾了我一兩個月之久。之間有試好多辦法都不行,後來準備寫乙個程式單獨抽取這個表的時候發現了問題,並解決了它,貼在下面,幫助自己,同時也給那些跟我有同樣錯誤的人一些提示。 

我的同步方法是建立兩個連線,連線到a庫和b庫,然後有兩個adoquery通過不同的連線同時訪問a庫和b庫的當前同步表,對每條記錄做判斷,看看庫b中是否有此條記錄,沒有增加,有則修改內容,迴圈列賦值。 

新增的**就是 

adoquerya.close; 

adoquerya.sql.text := 'select c1, c2, c3 from t1 where 1 = 1';

adoquerya.sql.open; 

.... 

adoquerya.post; 

//各位大牛們只要心細,應該已經看出我語句的bug了,其實就是

因為乙個邏輯錯誤where 1 = 1,這個是因為我方便加and條件而設立的,但是新增時應該查詢空表,所以1 = 1是等同於沒有過濾,查詢全表了,我的表記錄有50w+,每條記錄有20-30k,這樣全部放到記憶體裡肯定會超的,只要多加乙個where 1 = 1 and 1 = 2即可

。因為我的查詢語句是在乙個access表設定的,所以1 = 1我無法去掉,可能看起來很不爽,但是我也只能這樣寫。自己粗心一直是乙個蛋碎的問題。

delphi寫的時鐘

很久以前寫的程式了,要整理機器,只好放到這了 unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,extctrls,stdctrls type tform...

delphi中文變數寫占術程式

占術是六大國術之一,包括六爻四柱奇門遁甲六壬 用中文寫這類程式,那叫乙個得心應手 type t天乾 record 陰陽序數 0.1 五行序數 0.4 序數 1.10 十二宮之長生 1.12 漢字,五行漢字,十神 string end t地支 record 陰陽序數 0.1 五行序數 0.4 序數 1...

同步寫 讀資料時序

一 同步時序 在同步時序裡面,最重要的兩個訊號分別是clk和dqs。clk簡介 clk是時鐘訊號,在使用者端產生。在ddr double data rate 模式下,clk訊號的上公升和下降沿都會有資料被觸發 上下各 bit資料 因此,在乙個clk週期內,會有2bit資料被傳輸。其頻率在0 最大頻率...