applyupdates |
尚未結案
|
bhead811
一般會員 ![]() ![]() 發表:13 回覆:18 積分:6 註冊:2003-05-29 發送簡訊給我 |
HI:
想再一次請問高手們,
我是用ADO MTS socketconnect,後端資料庫是sql server個人版(因為作業系統被限定只能使用win2000 profesional),我用timer,一直不斷對資料庫做applyupdates,但很奇柽的是,常常程式就當在applyupdates,然後我去看資料庫的資料,其都己經insert 進去了,找了好久,都找不到原因,一開始以為是ado driver的問題,但我更新至2.8,還是無解,希望
有人可以告訴我你們的經驗. tks
|
Jasonwong
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
|
Chance36
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
|
bhead811
一般會員 ![]() ![]() 發表:13 回覆:18 積分:6 註冊:2003-05-29 發送簡訊給我 |
引言: 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到資料庫,所以這就更奇怪了.不知各位能否提供一下意見. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |