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

如何知道DBNavigator裡面post後送給資料庫的SQL語法

答題得分者是:pedro
adie1234
一般會員


發表:1
回覆:2
積分:0
註冊:2006-09-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-03 01:06:49 IP:61.231.xxx.xxx 訂閱
請問各位高手
如何知道DBNavigator裡面,在按完POST鍵,
程式會傳到資料庫裡的SQL語法,
因為從SQL Profiler可以知道SQL語法,
但是要直接從DELPHI裡面去如何得知呢?
謝謝了!
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-03 08:43:16 IP:60.248.xxx.xxx 未訂閱
是Query的元件麼?
在BeforePost用Memo
Memo1.Lines.Text:=dataSet.Sql.Text
adie1234
一般會員


發表:1
回覆:2
積分:0
註冊:2006-09-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-03 09:24:21 IP:61.231.xxx.xxx 訂閱
謝謝你的回覆

我的目的是在form裡面有ADOTABLE也有ADOQUERY
然後在資料有異動後,去按DBNavigator裡的post鍵
會送出SQL給資料庫去更新

從SQL Profiler可以看得出來,如下:
exec sp_executesql N'UPDATE dbo.[客戶基本資料]
SET
[郵號] = @P1
WHERE
[客戶編號] = @P2', N'@P1 varchar(3),@P2 varchar(4)', '330', 'A001'


那我如何可以在delphi中得知他update 這一串的SQL語法呢?
謝謝了
===================引 用 pedro756901 文 章===================
是Query的元件麼?
在BeforePost用Memo
Memo1.Lines.Text:=dataSet.Sql.Text
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-03 09:43:25 IP:60.248.xxx.xxx 未訂閱
除了用Profiler,應該沒有比較好的辦法
整個ADOTable及ADOQuery是封裝MS ADO的存取技術
追VCL....TCustomADODataSet.InternalRefresh->Recordset.Resync
看這一行宣告
Recordset20 = interface(Recordset15)
也就是只最宣告取用MS的介面
實作部份在它的DLL裡頭,看不到
adie1234
一般會員


發表:1
回覆:2
積分:0
註冊:2006-09-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-03 10:51:58 IP:59.120.xxx.xxx 訂閱
感謝 pedro756901的回答
我原本是想要記錄異動資料
看來要換別種方式了
除了用SQL Trigger去作,還有其他方式嗎?
因為欄位超過100個,用Tigger去寫,要寫很多行,感覺沒什效率,
不知有沒有更方便的方式呢?
編輯記錄
adie1234 重新編輯於 2007-08-03 11:20:40, 註解 無‧
系統時間:2024-05-09 11:58:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!