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

請問Query.open & Query.ExecSQL 的差異?

答題得分者是:Justmade
Ethan
版主


發表:101
回覆:170
積分:78
註冊:2006-07-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-15 09:35:29 IP:61.218.xxx.xxx 未訂閱
請問Query.open & Query.ExecSQL 的差異? 小弟對這一點比較不懂,想請教前輩們,在什麼情況下是用open,而什麼時候是該用ExecSQL?? 這倆者差異在哪??
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-15 09:41:14 IP:211.21.xxx.xxx 未訂閱
引言: 請問Query.open & Query.ExecSQL 的差異? 小弟對這一點比較不懂,想請教前輩們,在什麼情況下是用open,而什麼時候是該用ExecSQL?? 這倆者差異在哪??
  • Query.open:當您的SQL語法下Select時使用。
  • Query.ExecSQL:當您的SQL語法下Insert、Update、Delete時使用。
~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
chih
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-15 09:50:08 IP:211.74.xxx.xxx 未訂閱
Query.open ->顯示資料 Query.ExecSQL->回寫資料 僅供參考
Justmade
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-15 10:13:19 IP:218.16.xxx.xxx 未訂閱
Open : 當你的 SQL 指令是會另數據庫回傳資料時使用,最常用的是 Select, 但也包括 Show Tables, Show Create Table 等等,你使用 Open (或設 Active := true) DataSet 元件會期望有 Cursor 回傳,即是回傳的是空資料也好;但若沒 Cursor 回傳即會出錯。 ExecSQL : 當你的 SQL 指令只是叫數據庫執行一些東西而沒有 Cursor 回傳的 (可回傳 Row Affected / warning 等資訊)。DataSet 不會預備資源給回傳的 Cursor 所以若有 Cursor 回傳也處理不了。這主要是如 channel 兄所言的 Insert、Update、Delete 但也包括呼叫數據庫做不同事的函數。
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-17 11:44:09 IP:61.155.xxx.xxx 未訂閱
Query.open  对数据库的查询、统计、汇总,然后产生返回记录集的时候使用; 但也可以用于INSERT、UPDATE、DELETE等数据库记录改变的操作, 但这中操作最好用Query.ExecSQL; 上面各位的思想,也是没错的!!! 风花雪月 e梦情缘
------
风花雪月 e梦情缘
Justmade
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-17 12:39:31 IP:218.16.xxx.xxx 未訂閱
引言: Query.open 对数据库的查询、统计、汇总,然后产生返回记录集的时候使用; 但也可以用于INSERT、UPDATE、DELETE等数据库记录改变的操作, 但这中操作最好用Query.ExecSQL
是嗎? 不過不知道為甚麼小弟使用 Query.open 來執行 INSERT, UPDATE, DELETE statemnt 時總是報錯 Error Creating Cursor Handle 看以往的記錄,不少人也遇到同樣問題, http://delphi.ktop.com.tw/topic.php?TOPIC_ID=18884 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=21323 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=21874 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=23750 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28282 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24782 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29343 大家提出的解決辦法都是笨方法--> 不用 Open 改用 ExecSQL 原來還有可以使用 Open 不用轉用 ExecSQL 的聰明方法丫 那便真的要請 wnhoo 大大指教一下整個 K.Top 的網友及 Delphi 的廣大用戶了。
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-17 18:01:24 IP:218.32.xxx.xxx 未訂閱
引言: Query.open 对数据库的查询、统计、汇总,然后产生返回记录集的时候使用; 但也可以用于INSERT、UPDATE、DELETE等数据库记录改变的操作, 但这中操作最好用Query.ExecSQL; 上面各位的思想,也是没错的!!! 风花雪月 e梦情缘
呵呵...我不反對, 不厭其煩的幫問題作總結, 或許可以檢到現成的...哈哈 不過總結變成錯的...這...wnhoo 兄節制一下吧
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-17 20:00:03 IP:61.155.xxx.xxx 未訂閱
我感觉,技术的本身是在于交流!!! 我上面概括是有点不妥,但是在其它语言中,这样用OPEN的方法操作数据的方式的确是有的;你们各位,为什么不就此说说这样的用法!!! 哦,忘了告诉各位!!对于高级语言的编程我熟悉多种,但我是刚学DELPHI的!! 所以,以后我有不懂的地方,还请各位指正!!! 对于,我想提问者引申的地方,希望大家帮助补充。不要发一些无聊的帖子! 如果想灌水请到别处,KTOP不会希望您这样做。 伟人总是包含、谅解、解说;而X人总是挑刺!!!    我再此请教各位一个问题就是: 在什么程序语言中,这样用OPEN的方法INSERT、DELETE、UPDATE、SELECT操作数据的? 风花雪月 e梦情缘
------
风花雪月 e梦情缘
Justmade
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-17 22:42:48 IP:218.16.xxx.xxx 未訂閱
自己不懂還亂說的人還敢用這種語氣說話,真是教人見識到了。 若你是第一二次這樣不懂亂說,或將別人答過的東重覆一次來模魚,大家絕不會這樣,但你己經是十次二十次還是每勸不改。才會這樣較明顯的指出你的錯處,希望你若有少許知恥的心,便收歛一下,繼續對你熟識的題目作答幫助別人,而不要在你不會的地方亂作答了。 不過看你的回文也知道,我們都是枉作的了。 多謝你叫我能更體會這副老對聯,請將它送給你罷 一二三四五六七 孝悌忠信禮義廉
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-05-18 08:00:14 IP:61.155.xxx.xxx 未訂閱
Justmade 兄:    我还是将上面的题目答案讲一下吧!!! Query.open 对数据库的查询、统计、汇总,然后产生返回记录集的时候使用; Query.ExecSQL用于INSERT、UPDATE、DELETE等数据库记录改变的操作,    但是在其它语言中可能出现混用的情况,比如ASP/ASP.NET中也可以使用RECOREDSET.open的方法,对数据库的INSERT、UPDATE、DELETE操作。但是它也提供一个专门对数据库的INSERT、UPDATE、DELETE操作的方法COMMAND.    Ethan 兄: 所以我在上面发的帖子,给各位产生了误解!           风花雪月 e梦情缘
------
风花雪月 e梦情缘
Justmade
版主


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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-05-19 11:02:19 IP:218.16.xxx.xxx 未訂閱
以下轉貼自 : 給 wnhoo ,也給關心事件的K.Top網友  http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30664    由於與本文 wnhoo 的回應有較大關連,所以在些轉貼一下,全文請看上面連結。    ------------------------------    對你在這幾編的回文我有一些回應,也想借此對你作出一些提醒與建議,我知道你現在很難聽得進去;但若你的在本站報的年齡是真實年齡,你還很年輕,前面還有很多路要走;對這些建議留有個印象,到平心靜氣時想一想,或有其他狀況發生時對比一下,相信會對你有幫助的。    若我說得不對,亦歡迎你及各網友提出指正。
  1. 不懂的便不要扮專家 照你在事件三所說,原來你是剛學 Delphi 的,但你看多的回文都是放著專家的口吻耶,就是上面幾個事件你不也是放著專家的口吻指出別人的"不是"嗎?你有沒有想過,別人若直的以為你是專家聽信了你錯誤的信息,是會苦害了他們的?
  2. 挑戰別人前,先攪清楚自己是對的 廣東人有句話,說面子是別人給的,臉是自己丟的,觀看上面的事件一、三、四,若你不先主動挑戰,會顯露自已的錯處嗎?若你挑戰前先自己攪清楚,也就不會出現這種情況了。
  3. 錯了便認,就是不願直認就沉默也好,說多只會錯多,找借口更是顯露自己的幼稚 在事件三中,相信每個有細看整篇題目的人都會知道你最初絕對是在說Delphi的用法,到被人指出錯誤後再推說甚麼其他語言的語法,有用嗎?不如直認自己誤會了,或沉默讓事件過去,反而不會把自己帶到更惡劣之地。
  4. 要了解自己的身份,不要胡亂以為自己就代表團體,尤其是指責別人時 你說"如果想灌水请到别处,KTOP不会希望您这样做。"請問誰授權你代表 K.Top 來指責K.Top的版主灌水,論灌水大家看看大家的文章便知誰最會灌水,即使是真的,你絕對可提出但也不輪到你代K.Top 發言呀?若你對一個沒貪污的中國政府官員說:"如果想要貪污請到別處,中國政府也不會希望您這樣做",不知我們以後還能不能見到你.... 當然,我也只是代表自己發言沒權以K.Top 的身份來發言。
  5. 不要把別人的體諒、包容當成是必然的而進一步成為自己犯錯的免責理據 經過自我給分及眾多的問題文章,你還在這裡自由發言,難道這不是體諒包容嗎?但體諒包容有個限度,而且也不是必然的。我的量度低,所以發難較早,其他站長版主比較像你說的偉人,所以還在忍耐,但這並不表示他們沒不滿。 最重要的是,體諒包容是別人的恩惠,站長若站出來叫我們多體諒包容沒問題,但自己錯了後口邊掛著甚麼"宰相肚里能撑船!!"(來自你給我的email),"伟人总是包含、谅解、解说;而X人总是挑刺!!!",把別人的恩惠當成是擋箭牌,這對你的一成將會有很大的負面影響。因為你這樣慣了,做事只會越來越不負責任,因為心裡總想即使自己錯了別人理應體諒包容,若不體諒包容便是別人的錯而自己有理,這樣你永遠不會面對自己的錯,自然也較難改正和進步了。
  6. 你常說"技术的本身是在于交流",按語理分析來說這是有語病的,但大家也明你是說研究技術最重要的是交流罷。這沒錯,但如你所言,是在於"交流",不是"抄流",將別人的技術當成是自己的抄來四處流,雖有利於舊技術的傳播,但嚴重影響新技術的開發,絕對是研究技術的大忌。所以再一次勸告你,引用別人的文章程式碼請儘量標出原作者及出處
系統時間:2024-11-23 3:46:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!