有關新增問題 |
|
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
各位大大我是最近才剛始學delphi的
想新增一筆料,可是卻發現不知那裡出錯 可以請各位大大幫我看一下嗎??? 謝謝!!!!! unit prod; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls; type TForm1 = class(TForm) Query1: TQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; Edit1: TEdit; Button1: TButton; procedure FormDblClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormDblClick(Sender: TObject); begin close(); end; procedure TForm1.Button1Click(Sender: TObject); begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('select * From Prod'); Query1.Open; Query1.Insert; Query1.Fields.FieldByName('成品代號').Value := edit1.text; Query1.Post; end; procedure TForm1.FormCreate(Sender: TObject); begin end; end. |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
g9221712
高階會員 發表:145 回覆:344 積分:162 註冊:2006-07-06 發送簡訊給我 |
|
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
g9221712
高階會員 發表:145 回覆:344 積分:162 註冊:2006-07-06 發送簡訊給我 |
Stallion前輩:
我若將程式改成,如下: 是否還是會導致資料更新或新增前就有大量的流量甚至逾時! Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('select top 0 * From Prod'); Query1.Open; Query1.Insert; Query1.Fields.FieldByName('成品代號').Value := edit1.text; Query1.Fields.FieldByName('包裝代號').Value := edit1.text; Query1.Post;
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」 程式寫的越久,卻發現自己越來越不會寫程式! |
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
謝謝各位大大幫小弟我解決問題,可是我也是有前面幾位大大的方法去執行,但結果還是一樣錯誤
我想了很久,還是想不出來到底錯在那? 我再重新說明我的問題所在 我有一個innova的資料庫內有一個prod.db的table ,而我於表單有使用Query、DataSource、DBGrid三個元件 table內共有28個欄位,也設有二個key分別為'成品代號','包裝代號',而我想試若能重這個key新增到資料庫的話 其它欄位應該是同理可証的。請各位大大幫幫小弟我吧!!!謝謝~~ unit prod; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls; type TForm1 = class(TForm) Query1: TQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; Edit1: TEdit; Button1: TButton; Edit2: TEdit; procedure FormDblClick(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormDblClick(Sender: TObject); begin close(); end; procedure TForm1.Button1Click(Sender: TObject); begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('select top 0 * From Prod'); Query1.Open; Query1.Insert; Query1.Fields.FieldByName('成品代號').Value := edit1.text; Query1.Fields.FieldByName('包裝代號').Value := edit2.text; Query1.Post; end; end. |
g9221712
高階會員 發表:145 回覆:344 積分:162 註冊:2006-07-06 發送簡訊給我 |
|
g9221712
高階會員 發表:145 回覆:344 積分:162 註冊:2006-07-06 發送簡訊給我 |
|
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
|
g9221712
高階會員 發表:145 回覆:344 積分:162 註冊:2006-07-06 發送簡訊給我 |
|
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
Project prod1.exe raised exception class EDatabaseError with message 'Query1: Cannot modify a read-only dataset'. Process stopped. Use Step or Run to continue.
不可以修改 唯讀的資料集 ===================引 用 文 章=================== http://photo.pchome.com.tw/monkeyhung/116788095818/
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
|
g9221712
高階會員 發表:145 回覆:344 積分:162 註冊:2006-07-06 發送簡訊給我 |
新增、修改、刪除的功能資料集本身就指令,建議找書來看看!
查詢和列印,概念其實差不多,但是查詢一般是輸出到表單上(要看你要做到怎樣的查詢程度、這牽涉到介面的設計), 報表開發的話,我目前用Fastreport 4.X 不知道你用哪種資料庫!總覺得你是卡在屬性設定有問題和key的設定! ===================引 用 文 章=================== G大:請問一下那我要如何修改才能讓這個資料集做出 有新增、查詢、修改、刪除、列印的功能呢????
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」 程式寫的越久,卻發現自己越來越不會寫程式! |
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
http://photo.pchome.com.tw/monkeyhung/116788778247/
我的屬性設定如下 query: name為query1, databasename為innova sql為select * from prod active為true requestlive為true datasource:name為datasource1 dataset為query1 dbgrid:name為dbgrid1 datasource為datasource1 |
g9221712
高階會員 發表:145 回覆:344 積分:162 註冊:2006-07-06 發送簡訊給我 |
|
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
|
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
還有兩種可能:
1.你用檔案總管檢查一下這個Paradox﹝*.db﹞的屬性,看是否是ReadOnly。以前小弟有好幾次就是在這裏...哈哈了。 2.是否將Select top 0 * from ...改為Select top 10 * from...。或乾脆改為Select * from ... //順帶一提,我記得Paradox是不能接受M$產品的 Select Top N指令的。你這個Query應該是開不出來的。 //Paradox的檔都被砍光光了,沒辦法幫你試試看。
------
Kevin |
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |