ADOConnection的錯誤訊息 |
尚未結案
|
spooky
一般會員 發表:2 回覆:5 積分:1 註冊:2003-07-03 發送簡訊給我 |
各位先進:
請教一個 ADOConnection 的錯誤訊息:
在 Help 中有說明
_di__Recordset __fastcall Execute(const WideString CommandText, const TCommandType CommandType, const TExecuteOptions ExecuteOptions)/* overload */; 於是我便想試試看直接使用 ADOConnection 的 Execute,我使用的程式碼如下:
ADOConn1->Execute(WideString(”insert into Batt_Meas01 (SN, Date_Time, Line_Station, Meas_Ave, Meas_Val, Offset, Batt_ADC, Delay_Flag) values('2004030314344', '2004/03/03 14:34:54', 'Test1' , 4146, '4134', 54, 4202, 'N')”), cmdText, eoExecuteNoRecords); 結果出現以下的錯誤訊息:
[C Error] Main_From.cpp(182): E2285 Could not find a match for 'TADOConnection::Execute(WideString,TCommandType,TExecuteOption)' Why?? 多謝解答~
|
spooky
一般會員 發表:2 回覆:5 積分:1 註冊:2003-07-03 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
spooky, 您好
請試試修改以下紅色的部分,看看能否符合您的需求。
ADOConn1->Execute(WideString(”insert into Batt_Meas01 (SN, Date_Time, Line_Station, Meas_Ave, Meas_Val, Offset, Batt_ADC, Delay_Flag) values('2004030314344', '2004/03/03 14:34:54', 'Test1' , 4146, '4134', 54, 4202, 'N')”), cmdText, TExecuteOptions()); =================================
涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。
是非終日有,不聽自然無
天下本無事,庸人自擾之
|
spooky
一般會員 發表:2 回覆:5 積分:1 註冊:2003-07-03 發送簡訊給我 |
感謝 tech_state 版主的鼎力相助,剛剛試過 Compile 可以過了。 可是我有點不明白,請教一下 const TExecuteOptions ExecuteOptions 這個參數的代表的意義是什麼?是不是只我所下的 SQL Command 的性質是什麼嗎? 我在 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=20587 看到的範例是
ADOConnection1->Execute(“select * from Tabel1 where name=’David’”,cmdText, eoAsyncExecute); 為什麼會無法通過 Compile ,而 tech_state 版主妳所建議可以通過 Compile 呢?
我有點搞迷糊了~
|
folkchen
高階會員 發表:9 回覆:232 積分:173 註冊:2003-10-09 發送簡訊給我 |
|
spooky
一般會員 發表:2 回覆:5 積分:1 註冊:2003-07-03 發送簡訊給我 |
Dear folkchen :
你好,因為所出現的訊息屬於 Compile 階段的錯誤訊息,因此是屬於語法上的錯誤,應該與是 Insert into 或是 Select 無關,剛剛我試了一下也是如此,不過還是感謝妳的指教。 tech_state 版主:
妳好~ 我所不明白的是,依照 Help 中第三個參數是 ExecuteOptions,於是我就輸入Help中所列舉的項目,因為我是 Insert 所以選擇 eoExecuteNoRecords。 而根據 tech_state 版主建議改為輸入TExecuteOptions(),即可通過 Compile,因此我所不解的是其中的因由。 還麻煩各位先進解答,感激不盡。
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
spooky, 您好
剛剛看了您提供的連結資料,
我並不知道bruce0211版主提供的範例是否漏掉了其他資料,
或是我對此Methdos有所誤解,
我認為
ADOConnection1->Execute(“select * from Tabel1 where name=’David’”,cmdText, eoAsyncExecute);
若要可以正確通過Compilier的話,
應該改為
ADOConnection1->Execute(“select * from Tabel1 where name=’David’”,cmdText, (TExecuteOptions() << eoExecuteNoRecords));
紅色部分表示將Execute Option設定為eoExecuteNoRecords,
若沒有設定則為預設值。 不知您是否查看過Help檔?Help檔中有提到
void __fastcall Execute(const WideString CommandText, int &RecordsAffected, const TExecuteOptions ExecuteOptions = (TExecuteOptions() << eoExecuteNoRecords ));
ExecuteOptions is a TExecuteOptions value that specifies the characteristics of the command execution. 以上為個人想法,若有錯誤請指正。 =================================
涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。
是非終日有,不聽自然無
天下本無事,庸人自擾之
|
spooky
一般會員 發表:2 回覆:5 積分:1 註冊:2003-07-03 發送簡訊給我 |
tech_state 版主,妳好: 我的 help (BCB5) 是這樣寫的:
void __fastcall Execute(const WideString CommandText, int &RecordsAffected, const TExecuteOptions ExecuteOptions)/* overload */; Description Call Execute to execute a command using the ADO connection object. CommandText is the command to execute. ExecuteOptions is a TExecuteOptions value that specifies the characteristics of the command execution. Execute returns a recordset if the command executed is one that generates a recordset. RecordsAffected indicates the number of records, if the command operates on data, that are affected by the command after execution. 英文不好加上有些語法不熟,所以可能看漏一些 Help 的內容。
感謝妳的鼎力相助,現在已經了解參數為何如此下了。
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |