Record already locked by this session |
答題得分者是:P.D.
|
chi120
一般會員 發表:16 回覆:16 積分:6 註冊:2007-08-28 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
chi120
一般會員 發表:16 回覆:16 積分:6 註冊:2007-08-28 發送簡訊給我 |
|
chi120
一般會員 發表:16 回覆:16 積分:6 註冊:2007-08-28 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
如果所有的 lck 都確定移除的話,
1.請檢查 bde administrator 中 configuration=>drivers=>native=>paradox=>net dir 改到 d:\ 試試看 2.請檢查你自己程式是否有拉一個TDataBase 的元件, 而且是 Active:= True 改為False, 請改為 False 後重新complier 執行 3.請檢查你自己程式中的Table, Query 是否有 Active=True, 請改為 False 後重新complier 執行 ===================引 用 chi120 文 章=================== 使用的是parodox的 .db的資料表 .lck的檔案我之前都刪除過了 問題還是一樣存在 @@ 不知道大大還有沒有別的解答呢 |
chi120
一般會員 發表:16 回覆:16 積分:6 註冊:2007-08-28 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
chi120
一般會員 發表:16 回覆:16 積分:6 註冊:2007-08-28 發送簡訊給我 |
檔案功能複雜
我只copy新增時錯誤的程式 (這裡如何將程式丟上來?) [code delphi] procedure TFormTireAdd.Button1Click(Sender: TObject); var Vtireno1 : string; i,Vno,cnt,Vversion : integer; xVal : variant; begin if kind.ItemIndex = 0 then begin IF (Edit1.Text <> '') AND (Edit2.Text <> '') AND (Edit3.Text <> '') AND (Edit4.Text <> '') AND (opno1.Text <> '') AND (bdep2.Text <> '' ) THEN BEGIN i := length(Edit1.Text); case i of 1 : Vtireno1 := '0' Edit1.Text '-'; 2 : Vtireno1 := Edit1.Text '-'; end; i := length(Edit2.Text); case i of 1 : Vtireno1 := Vtireno1 '00' Edit2.Text '-'; 2 : Vtireno1 := Vtireno1 '0' Edit2.Text '-'; 3 : Vtireno1 := Vtireno1 Edit2.Text '-'; end; Vtireno1 := Vtireno1 Edit3.Text '-' Edit4.Text; DM1.Qtireno1.Close; DM1.Qtireno1.SQL.Clear; DM1.Qtireno1.SQL.Add('select * from Pspec1 order by tireno1'); DM1.Qtireno1.Prepare; DM1.Qtireno1.Open; DM1.Qtireno1.Filtered := False; DM1.Qtireno1.Filter := 'tireno1=' '''' Vtireno1 '*' ''''; DM1.Qtireno1.Filtered := True; IF DM1.Qtireno1.IsEmpty THEN Vtireno1 := Vtireno1 '01' ELSE BEGIN DM1.Qtireno1.Last; Vno := strtoint(copy(DM1.Qtireno1.FieldByName('tireno1').asstring,12,2)); Vno := Vno 1; IF Vno < 10 THEN Vtireno1 := Vtireno1 '0' inttostr(Vno) ELSE Vtireno1 := Vtireno1 inttostr(Vno); END; DM1.QPSpec1.Append; DM1.QPSpec1.Edit; DM1.QPSpec1.FieldByName('tireno1').asstring := Vtireno1; DM1.QPSpec1.FieldByName('version').asstring := ''; DM1.QPSpec1.FieldByName('opno').asstring := opno1.Text; DM1.QPSpec1.FieldByName('bdep').asstring := bdep2.KeyValue; DM1.QPSpec1.FieldByName('usrno').asstring := Vusrno; DM1.QPSpec1.FieldByname('indat').asvariant := date; DM1.QPSpec1.Post; FormTireAdd.Close; END ELSE showmessage('新增欄位不可為空'); end; ///////套用新增//////// if kind.ItemIndex = 1 then begin IF (Edit1.Text <> '') AND (Edit2.Text <> '') AND (Edit3.Text <> '') AND (Edit4.Text <> '') AND (opno1.Text <> '') AND (bdep2.Text <> '' ) AND (Edit10.Text <> '') THEN BEGIN DM1.QPSpec1.Filtered := False; DM1.QPSpec1.Filter := 'tireno1=' '''' Edit10.Text '''' ' and version is null'; DM1.QPSpec1.Filtered := True; IF DM1.QPSpec1.IsEmpty THEN BEGIN DM1.QPSpec1.Filtered := False; showmessage('無此生胎標準'); Edit10.SetFocus; END ELSE BEGIN cnt := DM1.QPSpec1.FieldCount - 1; xVal := VarArrayCreate([0,cnt],varVariant); for i := 0 to cnt do xVal[i] := DM1.QPSpec1.Fields[i].AsVariant; DM1.QPSpec1.Filtered := False; i := length(Edit1.Text); case i of 1 : Vtireno1 := '0' Edit1.Text '-'; 2 : Vtireno1 := Edit1.Text '-'; end; i := length(Edit2.Text); case i of 1 : Vtireno1 := Vtireno1 '00' Edit2.Text '-'; 2 : Vtireno1 := Vtireno1 '0' Edit2.Text '-'; 3 : Vtireno1 := Vtireno1 Edit2.Text '-'; end; Vtireno1 := Vtireno1 Edit3.Text '-' Edit4.Text; DM1.Qtireno1.Close; DM1.Qtireno1.SQL.Clear; DM1.Qtireno1.SQL.Add('select * from Pspec1 order by tireno1'); DM1.Qtireno1.Prepare; DM1.Qtireno1.Open; DM1.Qtireno1.Filtered := False; DM1.Qtireno1.Filter := 'tireno1=' '''' Vtireno1 '*' ''''; DM1.Qtireno1.Filtered := True; IF DM1.Qtireno1.IsEmpty THEN Vtireno1 := Vtireno1 '01' ELSE BEGIN DM1.Qtireno1.Last; Vno := strtoint(copy(DM1.Qtireno1.FieldByName('tireno1').asstring,12,2)); Vno := Vno 1; IF Vno < 10 THEN Vtireno1 := Vtireno1 '0' inttostr(Vno) ELSE Vtireno1 := Vtireno1 inttostr(Vno); END; DM1.QPSpecP2.Close; DM1.QPSPecP2.SQL.Clear; DM1.QPSpecP2.SQL.Add('select * from pspecp1 where tireno1=' '''' Edit10.Text '''' ' and version is null'); DM1.QPSpecP2.Prepare; DM1.QPSpecP2.Open; DM1.QPSpecP2.first; if not DM1.QPSpecP2.IsEmpty then begin While not DM1.QPSPecP2.eof do begin DM1.QPSpecP1.Append; DM1.QPSpecP1.Edit; DM1.QPSpecP1.FieldByName('tireno1').asstring := Vtireno1; DM1.QPSpecP1.FieldByName('version').asstring := ''; DM1.QPSpecP1.FieldByName('plylevel').asstring := DM1.QPSpecP2.FieldByName('plylevel').asstring; DM1.QPSpecP1.FieldByName('partno').asstring := DM1.QPSpecP2.FieldByName('partno').asstring; DM1.QPSpecP1.FieldByName('plylen').asfloat := DM1.QPSpecP2.FieldByName('plylen').asfloat; DM1.QPSpecP1.FieldByName('plywgt').asfloat := DM1.QPSpecP2.FieldByName('plywgt').asfloat; DM1.QPSpecP1.FieldByName('plyup').asfloat := DM1.QPSpecP2.FieldByName('plyup').asfloat; DM1.QPSpecP1.FieldByName('plyrem').asstring := DM1.QPSpecP2.FieldByName('plyrem').asstring; DM1.QPSpecP1.Post; DM1.QPSpecP2.Next; end; end; DM1.QPSpec1.Append; DM1.QPSpec1.Edit; DM1.QPSpec1.FieldByName('tireno1').asstring := Vtireno1; DM1.QPSpec1.FieldByName('version').asstring := ''; DM1.QPSpec1.FieldByName('opno').asstring := opno1.Text; DM1.QPSpec1.FieldByName('bdep').asstring := bdep2.KeyValue; DM1.QPSpec1.FieldByName('usrno').asstring := Vusrno; DM1.QPSpec1.FieldByname('indat').asvariant := date; DM1.QPSpec1.Post; DM1.QPSpec1.Edit; for i:=0 to cnt do if (DM1.QPSpec1.Fields[i].FieldName<>'Tireno1') AND (DM1.QPSpec1.Fields[i].FieldName<>'Version') AND (DM1.QPSpec1.Fields[i].FieldName<>'Bdep') AND (DM1.QPSpec1.Fields[i].FieldName<>'Opno') AND (DM1.QPSpec1.Fields[i].FieldName<>'Indat') AND (DM1.QPSpec1.Fields[i].FieldName<>'Usrno') then DM1.QPSpec1.Fields[i].AsVariant:=xVal[i]; DM1.QPSpec1.Post; FormTireAdd.Close; END; END ELSE showmessage('新增欄位不可為空'); end; ///// 生胎變更版次 //////// if kind.ItemIndex = 2 then begin IF (Edit10.Text <> '') THEN BEGIN DM1.QPSpec1.Filtered := False; DM1.QPSpec1.Filter := 'tireno1=' '''' Edit10.Text '''' ' and version is null'; DM1.QPSpec1.Filtered := True; IF DM1.QPSpec1.IsEmpty THEN BEGIN DM1.QPSpec1.Filtered := False; showmessage('無此生胎標準'); Edit10.SetFocus; END ELSE BEGIN cnt := DM1.QPSpec1.FieldCount - 1; xVal := VarArrayCreate([0,cnt],varVariant); for i := 0 to cnt do xVal[i] := DM1.QPSpec1.Fields[i].AsVariant; DM1.QPSpec1.Filtered := False; DM1.Qtireno1.Close; DM1.Qtireno1.SQL.Clear; DM1.Qtireno1.SQL.Add('select * from Pspec1 where tireno1=' '''' Edit10.Text '''' ' order by tireno1,version'); DM1.Qtireno1.Prepare; DM1.Qtireno1.Open; IF DM1.Qtireno1.IsEmpty THEN showmessage('此筆生胎標準未存在,無法變更版本') ELSE BEGIN DM1.Qtireno1.Last; Vversion := DM1.Qtireno1.FieldByName('version').asinteger 1; END; DM1.QPSpecP2.Close; DM1.QPSPecP2.SQL.Clear; DM1.QPSpecP2.SQL.Add('select * from pspecp1 where tireno1=' '''' Edit10.Text '''' ' and version is null'); DM1.QPSpecP2.Prepare; DM1.QPSpecP2.Open; DM1.QPSpecP2.first; if not DM1.QPSpecP2.IsEmpty then begin While not DM1.QPSPecP2.eof do begin DM1.QPSpecP1.Append; DM1.QPSpecP1.Edit; DM1.QPSpecP1.FieldByName('tireno1').asstring := Edit10.Text; DM1.QPSpecP1.FieldByName('version').asinteger := Vversion; DM1.QPSpecP1.FieldByName('plylevel').asstring := DM1.QPSpecP2.FieldByName('plylevel').asstring; DM1.QPSpecP1.FieldByName('partno').asstring := DM1.QPSpecP2.FieldByName('partno').asstring; DM1.QPSpecP1.FieldByName('plylen').asfloat := DM1.QPSpecP2.FieldByName('plylen').asfloat; DM1.QPSpecP1.FieldByName('plywgt').asfloat := DM1.QPSpecP2.FieldByName('plywgt').asfloat; DM1.QPSpecP1.FieldByName('plyup').asfloat := DM1.QPSpecP2.FieldByName('plyup').asfloat; DM1.QPSpecP1.FieldByName('plyrem').asstring := DM1.QPSpecP2.FieldByName('plyrem').asstring; DM1.QPSpecP1.Post; DM1.QPSpecP2.Next; end; end; DM1.QPSpec1.Append; DM1.QPSpec1.Edit; DM1.QPSpec1.FieldByName('tireno1').asstring := Edit10.Text; DM1.QPSpec1.FieldByName('version').asinteger:= Vversion; DM1.QPSpec1.Post; DM1.QPSpec1.Edit; for i:=0 to cnt do if (DM1.QPSpec1.Fields[i].FieldName<>'Tireno1') AND (DM1.QPSpec1.Fields[i].FieldName<>'Version') then DM1.QPSpec1.Fields[i].AsVariant:=xVal[i]; DM1.QPSpec1.FieldByName('usrno').asstring := Vusrno; DM1.QPSpec1.FieldByname('indat').asvariant := date; DM1.QPSpec1.FieldByName('state').Asstring := '*'; DM1.QPSpec1.Post; DM1.QPSpec1.Prior; DM1.QPSpec1.Edit; DM1.QPSpec1.FieldByName('usrno').asstring := Vusrno; DM1.QPSpec1.FieldByname('indat').asvariant := date; DM1.QPSpec1.Post; FormTireAdd.Close; END; END ELSE showmessage('新增欄位不可為空'); end; //補號 if kind.ItemIndex = 3 then begin IF Edit10.Text <> '' THEN BEGIN DM1.Qtireno1.Close; DM1.Qtireno1.SQL.Clear; DM1.Qtireno1.SQL.Add('select * from Pspec1 where tireno1=' '''' Edit10.Text ''''); DM1.Qtireno1.Prepare; DM1.Qtireno1.Open; IF not DM1.Qtireno1.IsEmpty THEN showmessage('此一次生胎代號已存在,不可補號') ELSE BEGIN DM1.QPSpec1.Append; DM1.QPSpec1.Edit; DM1.QPSpec1.FieldByName('tireno1').asstring := Edit10.Text; DM1.QPSpec1.FieldByName('version').asstring := ''; DM1.QPSpec1.FieldByName('bdep').asstring := 'C'; DM1.QPSpec1.FieldByName('usrno').asstring := Vusrno; DM1.QPSpec1.FieldByname('indat').asvariant := date; DM1.QPSpec1.Post; FormTireAdd.Close; end; END ELSE showmessage('新增欄位不可為空'); end; if (kind.ItemIndex <> 1) and (kind.ItemIndex <> 0 ) and (kind.ItemIndex <> 2 ) and (kind.ItemIndex <> 3 ) then begin showmessage('請選擇新增種類'); kind.SetFocus; end; FormTire1.recno.Text := inttostr(DM1.QPSpec1.RecNo); FormTire1.total.Text := inttostr(DM1.QPSpec1.RecordCount); end; [/code]
------
Aki..就算沒有明天 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
PO文上來實在很難判斷問題所在, 如果不方便完整丟檔的話, 那只好建議你上這個網站
http://www.eurekalog.com/ 下載它的試用版, 裝在你的Delphi上, 直接啟動這個元件, 當發生你上述的錯誤時, 它會把 發生錯誤時的程式行數告訴你, 你再從這裡去看是那一行程式出問題, 再去追吧! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |