線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1378
推到 Plurk!
推到 Facebook!

applyupdates

尚未結案
bhead811
一般會員


發表:13
回覆:18
積分:6
註冊:2003-05-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-16 20:24:21 IP:61.220.xxx.xxx 未訂閱
HI: 想再一次請問高手們, 我是用ADO MTS socketconnect,後端資料庫是sql server個人版(因為作業系統被限定只能使用win2000 profesional),我用timer,一直不斷對資料庫做applyupdates,但很奇柽的是,常常程式就當在applyupdates,然後我去看資料庫的資料,其都己經insert 進去了,找了好久,都找不到原因,一開始以為是ado driver的問題,但我更新至2.8,還是無解,希望 有人可以告訴我你們的經驗. tks
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-16 21:17:04 IP:203.75.xxx.xxx 未訂閱
1.為什麼你要用 TIMER 去做 APPLYUPDATE??? 2.請把有問題的 SOURCE 貼出來,這樣大家才知道你的重點在那 -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-16 21:32:42 IP:211.20.xxx.xxx 未訂閱
我用猜的    請在applyupdates 前先檢查是否有異動過           If cds.ChangeCount > 0 Then Begin cds.applyupdates(0); End; 猜錯勿怪
bhead811
一般會員


發表:13
回覆:18
積分:6
註冊:2003-05-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-16 23:25:51 IP:61.64.xxx.xxx 未訂閱
引言: 1.為什麼你要用 TIMER 去做 APPLYUPDATE??? 2.請把有問題的 SOURCE 貼出來,這樣大家才知道你的重點在那 -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
以下是我的source function TToNotes.BeginInsert: boolean; var filecount, vInt, FilelsBxCount, i: integer; filename, BackupName: string; AstringList1, LogStringList: TstringList; modelMappath: string; begin FileListBox1.update; FileListBox1.ApplyFilePath(TR7100DIR); FilterComboBox1.Filter := 'Pascal files (*.data)|*.dir'; if FileListBox1.Items.Count > 0 then begin FilelsBxCount := FileListBox1.Items.Count; if FilelsBxCount > 1 then //控制一次insert幾個file FilelsBxCount := 1; for vInt := 0 to FilelsBxCount - 1 do //避免被其他常駐程式抓到 begin filename := TR7100DIR FileListBox1.items[vInt]; BackupName := ChangeFileExt(filename, '.cah'); // renamefile(filename, BackupName); end; for vInt := 0 to {FileListBox1.Items.Count} FilelsBxCount - 1 do begin filename := TR7100DIR FileListBox1.items[vInt]; filename := ChangeFileExt(filename, '.cah'); // if ToHandleDIR(filename, AstringList1, modelMappath) = true then begin if dtboard.ApplyUpdates(0) > 0 then //就是在這行時回不來 begin if AstringList1 <> nil then AstringList1.free; BackupName := ChangeFileExt(filename, '.afail'); renamefile(filename, BackupName); Continue; end else begin if dtfov.ApplyUpdates(0) > 0 then begin if AstringList1 <> nil then AstringList1.free; BackupName := ChangeFileExt(filename, '.bfail'); renamefile(filename, BackupName); Continue; end; end; for i := 0 to AstringList1.Count - 1 do begin DeleteFile(AstringList1.Strings[i]); end; AstringList1.free; DeleteFile(filename); end else begin if AstringList1 <> nil then AstringList1.free; BackupName := ChangeFileExt(filename, '.fail'); renamefile(filename, BackupName); Continue; end; end; end; end; 做這個的目地是,因為有一台機器,會一直不斷的丟檔案,而我需要把這個己丟出的檔案做解析,解析完之後上傳至資料庫,所以我才需用timer,讓他不斷的去對己丟出的檔做解析,而這段程式碼,有問題的是在做applyupdats時,一開始做個10幾筆沒問題,但之後就會當在applyupdats,因為以我的經驗告訴我,若做不成功,應該會有excetpion,但我就是沒有收到這個excetpion,所以就整支程式當在那裏,以致我無法再對丟出的檔案做解析,所以我就一直感到很困惑,一直找不到問題所在. 我是用mts adoconnection sql server 個人版. 其實我只希望能收到exception,這樣就可以做處理,但我的程式就是當在applyupdates,所以就很奇怪,且當掉時,我到資料庫去看時,那筆資料有insert到資料庫,所以這就更奇怪了.不知各位能否提供一下意見.
系統時間:2024-05-19 22:25:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!