全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:594
推到 Plurk!
推到 Facebook!

一个很奇怪的现象

尚未結案
fangwy
中階會員


發表:99
回覆:139
積分:62
註冊:2003-09-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-23 15:46:33 IP:218.5.xxx.xxx 未訂閱
我开发的一个开票软件,在公司测试时一切正常,但在客户那里使用时却出现了一个与操作系统有关的怪现象: 输入的'开票项目'时要求是开票项目档里存在的开票项目.可是明明开票项目档中有,但却查找不到,用户输入窗口上开票项目是以列表形式提供,列表中的数据就是从同一个档案中读出.(数据的有效性是在TField的OnValiDate检查) 维护人员将同样数据在分公司机器上测试却一切正常,客户重新安装软件,故障依然,最后客户重新安装操作系统,故障消失了,作业一切正常. 在这个功能中只有一个简单的select语句(用的是BDE),实在找不出造成这个BUG的原因. 哪位大大能帮我分析一下可能是什么原因. 顺便说明一下本软件与设备的操作较多,用的是串口,但似乎与此没什么太大的关系,因为出问题的代码只做数据库操作.
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-25 22:42:24 IP:220.134.xxx.xxx 未訂閱
因為沒有程式碼,故針對你所提的資料庫方向提供個人意見,有錯請指正。 1.你所輸入的資料庫查詢語法. 2.讀檔動作,是否客戶與你們公司的在檔案結構上有何異同之處,再則取檔資料是否正常。 3.安裝時是否有放置所需檔案在內,雙方環境是否相同? ========================= 讀萬卷書~不如來K.TOP走一遭 =========================
fangwy
中階會員


發表:99
回覆:139
積分:62
註冊:2003-09-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-27 08:53:02 IP:218.5.xxx.xxx 未訂閱
谢谢likush的回复. 程序码如下,简单的不能再简单了: procedure TInvPrint_SDHZFWF.taTwInvItem_NmValidate(Sender: TField); begin if (taTwInvItem_Nm.AsString = '') or (pbFlag = true) then exit; with TQuery.Create(nil) do begin try DatabaseName := 'StarInv'; SQL.Clear; SQL.Add('Select * from tax_item where Item_Nm=:Item_Nm'); ParamByName('Item_Nm').AsString := taTwInvItem_Nm.AsString; Open; if RecordCount = 0 then begin raise Exception.Create('请先在"经营项目管理"中登记此经营项目!'); end else begin taTwInv.FieldByName('Item_unt').AsString := FieldByName('Item_unt').Asstring; taTwInv.FieldByName('Item_qty').value := 1; taTwInv.FieldByName('Item_prc').value := 0; taTwInv.FieldByName('Item_Amt').value := 0; taTwInv.FieldByName('Item_Dsc').value := FieldByName('Item_Dsc').Value; taTwInv.FieldByName('Item_Tip').value := FieldByName('Item_Tip').Value; taTwInv.FieldByName('Tax_id').Value := FieldByName('Tax_id').Value; end; finally free; end; end; end; 因本软件是本公司的设备的配套软件,重要数据都存储在设备中,数据库运用仅仅是为提高查询速度,临时数据的保存及为操作方便保存一些预选设置的数据.所以是单机版,数据库用的是PARADOX. 我有想过一种可能,是客户机器上安装的某此软件与本软件有某种冲突,所以重新安装操作系统就可以了,我以前也遇到安装了某个软件,造成另一个本可能正常运行的软件不能正常运行.
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-27 10:36:11 IP:220.134.xxx.xxx 未訂閱
就您提供的程式,我想你的問題點應有二個,有錯請指正 1.無法取得開票項目檔裡之開票項目,您可先自行加判斷 if Trim(taTwInvItem_Nm.AsString) = '' Then Showmessage('開票項目不存在'); 2.有關客戶端及貴公司之執行問題,故障有無訊息顯示,訊息為何? 我建議您可大概敍述,以便其他人提供給您更好的意見。 ========================= 讀萬卷書~不如來K.TOP走一遭 =========================
fangwy
中階會員


發表:99
回覆:139
積分:62
註冊:2003-09-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-27 13:38:16 IP:218.5.xxx.xxx 未訂閱
故障出现当时有将故障机器上的数据库拷贝回来,数据库中相应表有数据,而且数据是完整的.作业中提示信息就是"'经营项目管理"中登记此经营项目!", 开票项目是从设备中获取并插入数据库保存,从设备中读取的原始数据是array of char开的数组,将其转为string后保存,会不会是转换时字串结尾带有一个不可见的字符如Char(10),但保存时BDE自动将其取掉. 發表人 - fangwy 於 2004/09/27 13:46:44
系統時間:2024-07-03 2:06:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!