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

Tquery 資料存檔問題

尚未結案
lungchi
一般會員


發表:14
回覆:23
積分:7
註冊:2002-11-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-05 11:49:11 IP:203.70.xxx.xxx 未訂閱
請問什麼 oit_num及oit_b1的資料無法存入Tquery中,每當dbgrid新增一筆記錄時則會出現錯誤訊息.我指資料的方式有錯嗎?還請各位前輩指教. procedure TFormOINVP.Query1NewRecord(DataSet: TDataSet); begin Query1.FieldByName('oit_item').AsInteger := query1.RecordCount; Query1.FieldByName('oit_num').AsString := edit_num.Text; Query1.FieldByName('oit_b1').AsString := edit_b1.Text; end; 錯誤訊息為:project HCPA8P.exe raised exception class EOleException with message 'Anunknown error has occurred'.
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-05 12:53:49 IP:61.217.xxx.xxx 未訂閱
會不會在NewRcord時候edit_num.Text跟edit_b1.Text是空值ㄋ?? 另外要回存應該是要寫在BeforePost事件裡面喔...TRY TRY SEE..
lungchi
一般會員


發表:14
回覆:23
積分:7
註冊:2002-11-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-05 13:25:11 IP:203.70.xxx.xxx 未訂閱
edit_num,edit_b1 是tedit元件分表示"單號"及"發票類別",我試過是有資料的 而非nil,也試過chih兄的做法同樣會有這樣的訊息,但我把上述的放在下列中就不會出現上述的錯誤訊息,但確產生另一個奇怪的問題,dbgrid新增一筆新記錄時不會往下新增,而是在原來的位置新增一筆記錄,上一筆記錄的資料全看不見,變成空的,但實際去查tquery的資料庫,有寫入,煩請各位先進,多多指教. procedure TFormOINVP.DBGrid1EditButtonClick(Sender: TObject); begin Query1.Edit; Query1.FieldByName('oit_pno').AsString := selectinvpid; dbgrid1.SelectedIndex := dbgrid1.SelectedIndex 2 ; Query1.FieldByName('oit_num').AsString := edit_num.Text; Query1.FieldByName('oit_b1').AsString := edit_b1.Text; end;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-05 13:49:17 IP:218.16.xxx.xxx 未訂閱
dbgrid1.SelectedIndex := dbgrid1.SelectedIndex 2 ; 是否應為 : Query1.FieldByName('oit_item').AsInteger := dbgrid1.SelectedIndex 2 ;
lungchi
一般會員


發表:14
回覆:23
積分:7
註冊:2002-11-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-05 14:36:52 IP:203.70.xxx.xxx 未訂閱
版主,快快救救我吧,搞不定. dbgrid1.SelectedIndex := dbgrid1.SelectedIndex 2 ; 這個敍述是對的,主要是將dbgrid中的欄位往下移到數量欄位. 我主要的問題是上述資料存檔及dbgrid新增時,的問題,還請指教
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-05 14:52:18 IP:218.16.xxx.xxx 未訂閱
你的資料不清楚,甚樣幫你丫 又不知你的 selectinvpid 是甚樣來的,又不知你為甚麼之前要 'oit_item' 現在又不用了,更更不知為甚麼 OnNewRecord 中間突然要跳欄位... Query1.FieldByName('oit_item').AsInteger := query1.RecordCount; 是不安全的,如你刪了一個記錄再加入一個,那時 RecordCount 便會與最後一筆的 oit_item 一樣了
lungchi
一般會員


發表:14
回覆:23
積分:7
註冊:2002-11-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-05 15:14:46 IP:203.70.xxx.xxx 未訂閱
selectinvpid,是一隻傳回產品主檔的副程式,主要在傳遞產品號與DBGRID中產品編號配合的,當我把下列這二列敍述放在Query1NewRecord中當dbgrid增加一新記錄時則會產生我最早所發問的問題,但放在那在DBGrid1EditButtonClick,就不會,可是會產生這篇我所問的第二個問題,到於oit_item的問題主要是想取得dbgrid中的記錄筆數也就dbgrid中的第一個欄位"項次". Query1.FieldByName('oit_num').AsString := edit_num.Text; Query1.FieldByName('oit_b1').AsString := edit_b1.Text;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-05 17:32:08 IP:218.16.xxx.xxx 未訂閱
看情形是你其他地方有自動 post 了記錄。 我想你的事件現在寫得非常之亂,看你 post 上來的資料前後不符就知道。 在這種情形下,最好試開一個新的 project, 加上這個 query, dbgrid, 和 這個 onnewrecord 事件,試試有沒 error, 若沒有則很明顯是你其他地方出錯,將其他事件慢慢加上看那裡出錯。
系統時間:2024-05-20 17:14:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!