多重步驟操生發生錯誤.請檢查每個狀態值 |
缺席
|
yannyann
一般會員 發表:8 回覆:20 積分:10 註冊:2003-02-17 發送簡訊給我 |
我利用TTimer設計每0.1sec新增一筆含有BLOB Data的資料到Access資料庫裡
不過常常會出現"多重步驟操生發生錯誤.請檢查每個狀態值 "
這個錯誤訊息...
這應該從哪方面下手呢?
程式碼如下
void __fastcall TForm1::Timer1Timer(TObject *Sender) { (略) ADOtbVideo->Insert(); s=ADOtbVideo->CreateBlobStream( ADOtbVideo->FieldByName("Image"), bmWrite ); s->Seek( 0, 0 ); pJPEG->SaveToStream(s); ADOtbVideo->FieldByName("DateTime")->AsString=DateTimeToStr(Now()); delete s; delete pJPEG; ADOtbVideo->Post(); } |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
yannyann 你好:
請先修改你的程式碼如下,看看 dwDiff 的值為多少??
引言: 我利用TTimer設計每0.1sec新增一筆含有BLOB Data的資料到Access資料庫裡 不過常常會出現"多重步驟操生發生錯誤.請檢查每個狀態值 " 這個錯誤訊息... 這應該從哪方面下手呢? 程式碼如下-- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/03/17 13:40:40void __fastcall TForm1::Timer1Timer(TObject *Sender) { (略) DWORD dwStart=GetTickCount(); ADOtbVideo->Insert(); s=ADOtbVideo->CreateBlobStream( ADOtbVideo->FieldByName("Image"), bmWrite ); s->Seek( 0, 0 ); pJPEG->SaveToStream(s); ADOtbVideo->FieldByName("DateTime")->AsString=DateTimeToStr(Now()); delete s; delete pJPEG; ADOtbVideo->Post(); DWORD dwEnd=GetTickCount(); DWORD dwDiff=dwEnd-dwStart; }
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
yannyann
一般會員 發表:8 回覆:20 積分:10 註冊:2003-02-17 發送簡訊給我 |
引言: yannyann 你好: 請先修改你的程式碼如下,看看 dwDiff 的值為多少??RaynorPao你好.. dwDiff 在0 與 -16 之間跳動.. 不過我整個void __fastcall TForm1::Timer1Timer(TObject *Sender) 需要60-90ms的時間... RaynorPao你覺得可能是我Timer1Timer內耗時超過0.1sec? 我也想過這問題,不過我將timer interval改成200(0.2sec) 還是會出現相同問題... |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: RaynorPao你好.. dwDiff 在0 與 -16 之間跳動.. 不過我整個void __fastcall TForm1::Timer1Timer(TObject *Sender) 需要60-90ms的時間... RaynorPao你覺得可能是我Timer1Timer內耗時超過0.1sec? 我也想過這問題,不過我將timer interval改成200(0.2sec) 還是會出現相同問題... yannyann 你好: (1)那如果是這樣子寫呢(先試試看) >>> <><> 備註: 請 >> --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
yannyann
一般會員 發表:8 回覆:20 積分:10 註冊:2003-02-17 發送簡訊給我 |
RaynorPao你好..
加入之後依然會產生這個問題,而且執行時間拉長了..超過0.1sec. 你所指其它資料庫部分..我說明一下我程式資料庫部分的架構
我是用ACCESS 2000格式的資料庫,不過我是使用ACCESS 2002
連接部分,我使用
ADOtbVideo,ADOtbBack兩個ADOTable連到ADOConnection,再連往資料庫
Connection String: Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=D:\My Documents\VIDEO.mdb;Mode=ReadWrite;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False 在FormCreate時,Active 兩個ADOTable,
在Timer1Timer function中,只Insert資料到ADOtbVideo..
昨晚看了找了一晚上,實在看不出可能問題會在哪..
可以給我個方向嗎? 發表人 - yannyann 於 2003/03/17 14:27:16
|
yannyann
一般會員 發表:8 回覆:20 積分:10 註冊:2003-02-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |