ADOQuery元件是否能做到,以下資料庫基本功能? |
尚未結案
|
jawtair
一般會員 發表:30 回覆:92 積分:24 註冊:2003-04-26 發送簡訊給我 |
先說明一下元件結構如下
Form1視窗
數據庫pm3d←ADOConnection1←ADOQuery1←DataSource1←DBGrid1 數據庫用MS SQL SERVER資料為3萬多筆,由於原先沒有用SQL元件及語法,造成開檔、關檔非常慢,現改用SQL查詢時用DBGrid1重新顯示變得很快,真是太喜歡這個元件了 想請問的是,以上面的結構,是否可以用SQL來達成
. 刪除某一筆記錄
. 新增一筆記錄
. 存值A1 := Edit1.Text 抱歉,SQL新手,看了許多人發言,講到的例子非常複雜,好像沒有人講到「新增/修改/刪除/儲存」SQL基本用法,是否能指導一下?
另外看了許多MS SQL Server 2000的書,請問上面的語法都可以用在ADOQuery1元件上嗎?是否需要修改? 實在太喜歡它的效率了,但又不得其門而入,麻煩各位先見了。
|
jawtair
一般會員 發表:30 回覆:92 積分:24 註冊:2003-04-26 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
1. 其本上簡單的 ADOQuery 應可和 Table 一樣的 使用
ADOQuery1,Edit;
ADOQuery1.Insert;
ADOQuery1.Delete;
等等 2. 若你要使用 SQL 來更新
可使用 SQL 的 INSERT / UPDATE / DELETE 語法
由於 SQL 的語法有很多變他不可能在答題詳解請自參看參考書有特定的問題再問。
要記得的是,若你用 INSERT / UPDATE / DELETE 語法,執行時不是用
ADOQuery1.Open; (或 ADOQuery1.Active := true;)
而是要用
ADOQuery1.ExecSQL; 可參看 :
請問Query.open & Query.ExecSQL 的差異
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30474
|
jawtair
一般會員 發表:30 回覆:92 積分:24 註冊:2003-04-26 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
若你是說 ADO 的書,可考慮李維先生的書,不過他的比較深一點但很精很到。 若是SQL 的書,市面上多的是,若你只用 MSSQL 最好買 MSSQL 專用的書。 我沒用 MSSQL 也不知道那本較好。 先給你一些基本語法玩玩罷。這只是其中較基本的還有很多變化你要看看書才成。 Update 基本語法 :
ADOQuery1.SQL.Text := 'Update Table1 set Field1=Value1, Field2=Value2, Field3=Value3 where KeyField = KeyValue';
ADOQuery1.ExecSQL; Insert 基本語法 :
ADOQuery1.SQL.Text := 'Insert into Table1 (Field1,Field2,Field3) Values (Value1,Value2,Value3)';
ADOQuery1.ExecSQL; Delete 基本語法 :
ADOQuery1.SQL.Text := 'Delete from Table1 where KeyField = KeyValue';
ADOQuery1.ExecSQL;
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
|
jawtair
一般會員 發表:30 回覆:92 積分:24 註冊:2003-04-26 發送簡訊給我 |
我上次就特別去找李維先生的書,不過找到的是Delphi5的書,我記得如果沒記錯,ADO好像是DELPHI 6才出來的,所以就沒有買?
其他DELPHI的書,偏重於元件及BDE但能買的,幾乎被我買光了
從入門到進階Delphi 6程式建構的原理 文魁
Delphi 6 Object Pascal完美經典 金禾
Delphi 6資料庫程式設計 松崗
Delphi 6程式快樂上手 松崗
Delphi 7程式設計徹底研究 文魁
Delphi 7程式設計 高效率資料庫 碁峰
Delphi 6徹底研究 博碩
................
................
太多了,列的好幸苦(可見我是多麼想要把它學好),但對SQL著墨甚少 至於SQL Server買方面
SQL SERVER 2000 中小企業實務寶典 金禾資訊
自學Micorsoft SQL Server 2000 21天課程 博碩文化 所以才會想問說,MS SQL Server的範例是否能用在DELPHI?要如何引用?據然這個工具效率這麼好,為什麼Delphi對這方面著墨的書是如此的少?
|
jawtair
一般會員 發表:30 回覆:92 積分:24 註冊:2003-04-26 發送簡訊給我 |
|
jawtair
一般會員 發表:30 回覆:92 積分:24 註冊:2003-04-26 發送簡訊給我 |
|
jawtair
一般會員 發表:30 回覆:92 積分:24 註冊:2003-04-26 發送簡訊給我 |
引言: 先給你一些基本語法玩玩罷。這只是其中較基本的還有很多變化你要看看書才成。 Update 基本語法 : ADOQuery1.SQL.Text := 'Update Table1 set Field1=Value1, Field2=Value2, Field3=Value3 where KeyField = KeyValue'; ADOQuery1.ExecSQL; Insert 基本語法 : ADOQuery1.SQL.Text := 'Insert into Table1 (Field1,Field2,Field3) Values (Value1,Value2,Value3)'; ADOQuery1.ExecSQL; Delete 基本語法 : ADOQuery1.SQL.Text := 'Delete from Table1 where KeyField = KeyValue'; ADOQuery1.ExecSQL;沒想到真的可以用,真是太勵害了,短短幾行字,解決了! Justmade版主,有沒有想出書啊?我一定是真實的讀者喔 |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
jawtair
一般會員 發表:30 回覆:92 積分:24 註冊:2003-04-26 發送簡訊給我 |
請問下面的程式是否有問題? 為什麼執行會有錯誤? procedure TForm1.SpeedButton7Click(Sender: TObject);
var
Emp_No: String;
begin
Emp_No := DataSource1.DataSet.FieldByName('A0').AsString;
if messagedlg('確定要刪除?',mtConfirmation,[mbYes, mbNo], 0) = mrYes then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'SELECT * FROM pm3d Where (A0 = ' QuotedStr(Emp_No) ')';
ADOQuery1.Delete;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from pm3d');
ADOQuery1.Open;
end;
end;
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |