線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1725
推到 Plurk!
推到 Facebook!

有關新增問題

 
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-03 16:33:32 IP:203.69.xxx.xxx 訂閱
各位大大我是最近才剛始學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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-03 17:10:47 IP:61.219.xxx.xxx 未訂閱
建議您用單步追蹤 F7 or F8 看哪一行錯誤? 錯誤訊息貼上來

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-03 17:20:19 IP:203.69.xxx.xxx 訂閱
主要是這些地方出現錯誤訊息耶
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-03 18:03:29 IP:203.204.xxx.xxx 未訂閱
用單步追蹤 F7
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-03 19:58:58 IP:220.134.xxx.xxx 訂閱
會不會你資料庫有設定key值,導致失敗!
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-01-03 21:56:38 IP:59.114.xxx.xxx 訂閱
我是有設二個key ,分別為"成品代號"、"包裝代號"
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-01-03 22:41:41 IP:211.22.xxx.xxx 未訂閱
先不談你錯在哪裡!
你的SQL不能這樣下!
Query1.Close;
Query1.SQL.Clear;
.....
Query1.SQL.Add('INSERT INTO Prod VALUES(:FLD1,:FLD2)');
Query1.SQL.Parameters.ParamValues['FLD2'] = edit2.text;
Query1.SQL.ExecSQL;
....
請參考!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-01-03 23:09:03 IP:220.134.xxx.xxx 訂閱
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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-01-04 09:49:55 IP:203.69.xxx.xxx 訂閱
謝謝各位大大幫小弟我解決問題,可是我也是有前面幾位大大的方法去執行,但結果還是一樣錯誤
我想了很久,還是想不出來到底錯在那?
我再重新說明我的問題所在
我有一個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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-01-04 10:10:46 IP:220.134.xxx.xxx 訂閱
你會不會key值重複了!檢查一下!
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-01-04 10:11:10 IP:220.134.xxx.xxx 訂閱
你會不會key值重複了!檢查一下!
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-01-04 10:35:18 IP:203.69.xxx.xxx 訂閱
G大大,我檢查過了,KEY沒有重覆
而且主要是下面的地方出錯
program Project1;
uses
Forms;
{$R *.res}
begin
Application.Initialize;
Application.Run;
end.

g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#13 引用回覆 回覆 發表時間:2007-01-04 10:44:32 IP:220.134.xxx.xxx 訂閱
將錯誤畫面捉下來吧! 我的幻想能力不夠!無法猜出你的錯誤在哪!
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#14 引用回覆 回覆 發表時間:2007-01-04 11:24:14 IP:203.69.xxx.xxx 訂閱
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#15 引用回覆 回覆 發表時間:2007-01-04 12:10:04 IP:210.241.xxx.xxx 未訂閱
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

發送簡訊給我
#16 引用回覆 回覆 發表時間:2007-01-04 13:01:04 IP:203.69.xxx.xxx 訂閱
G大:請問一下那我要如何修改才能讓這個資料集做出
有新增、查詢、修改、刪除、列印的功能呢????
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#17 引用回覆 回覆 發表時間:2007-01-04 13:07:06 IP:220.134.xxx.xxx 訂閱
新增、修改、刪除的功能資料集本身就指令,建議找書來看看!
查詢和列印,概念其實差不多,但是查詢一般是輸出到表單上(要看你要做到怎樣的查詢程度、這牽涉到介面的設計),
報表開發的話,我目前用Fastreport 4.X
不知道你用哪種資料庫!總覺得你是卡在屬性設定有問題和key的設定!
===================引 用 文 章===================

G大:請問一下那我要如何修改才能讓這個資料集做出
有新增、查詢、修改、刪除、列印的功能呢????

------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#18 引用回覆 回覆 發表時間:2007-01-04 14:45:52 IP:203.69.xxx.xxx 訂閱
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

發送簡訊給我
#19 引用回覆 回覆 發表時間:2007-01-04 15:13:05 IP:220.134.xxx.xxx 訂閱
Paradox 這個資料庫類型我沒用過勒! 我都用Access或者MS SQL Server
說真的怕亂回答,反而害到你! 哈哈!
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#20 引用回覆 回覆 發表時間:2007-01-04 15:21:20 IP:203.69.xxx.xxx 訂閱
不會啦,反而要感謝G大你這麼用心的幫我解決這些問題
謝謝!!!!!
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#21 引用回覆 回覆 發表時間:2007-01-04 15:32:16 IP:61.231.xxx.xxx 訂閱
你忘了下Query1.RequestLive:=True;了。下過後才可對之作異動
好久沒看到*.db的東東了。你不該再用這個會讓你很麻煩的東西。只是玩玩,那用Access也比較好。
如果你是剛進Delphi門的話,別用BDE-Query,改用Ado吧。當初將舊系統由BDE改到ado可是花了一兩年的時間,才過來的。有些大型系統,到現在還是一大堆BDE混在ADO中,三不五時就給你快樂一下,真是痛苦萬分。
設過RequestLive就可以了。
------
Kevin
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#22 引用回覆 回覆 發表時間:2007-01-04 16:29:43 IP:203.69.xxx.xxx 訂閱
K大大我有把  requestlive設為true 我的屬性設定如下

query: name為query1,

databasename為innova

sql為select * from prod

active為true

requestlive為true
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#23 引用回覆 回覆 發表時間:2007-01-04 17:14:21 IP:61.231.xxx.xxx 訂閱
還有兩種可能:
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

發送簡訊給我
#24 引用回覆 回覆 發表時間:2007-01-04 17:27:30 IP:203.69.xxx.xxx 訂閱
各位大大,小之前所問的問以獲得解決了,感謝各位大大
不過我發現當按下"新增"鈕時
資料並不會實際的新增到prod這個資料表中
不知各位大大對於小弟這個問題有什麼看法
系統時間:2024-05-18 21:58:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!