可否協助將Delphi 的 code 轉成 BC++B,(關於 OpenSchema...) |
答題得分者是:GrandRURU
|
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
各位大大你們好:
我想將以下的 DELPHI CODE 轉成 BC B ,但小弟功力不足,嚐試的轉,但都會錯誤。 所以能麻煩大大,抽個空幫小弟轉一下,感激不盡!! ADOConnection1.Open; ADOConnection1.OpenSchema(siIndexes, EmptyParam, EmptyParam, ADODataSet1); ADODataSet1.Open; ADODataset1.Locate('TABLE_NAME', 'ABC', []); ShowMessage(ADODataset1.FieldByName('INDEX_NAME').AsString); |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
[code cpp]
ADOConnection1->Open(); ADOConnection1->OpenSchema(siIndexes, EmptyParam, EmptyParam, ADODataSet1); ADODataSet1->Open(); ADODataSet1->Locate('TABLE_NAME', 'ABC', []); ShowMessage(ADODataset1->FieldTypeNames('INDEX_NAME')->AsString); [/code] ===================引 用 salo0610 文 章=================== 各位大大你們好: 我想將以下的 DELPHI CODE 轉成 BC B ,但小弟功力不足,嚐試的轉,但都會錯誤。 所以能麻煩大大,抽個空幫小弟轉一下,感激不盡!! [code delphi] ADOConnection1.Open; ADOConnection1.OpenSchema(siIndexes, EmptyParam, EmptyParam, ADODataSet1); ADODataSet1.Open; ADODataset1.Locate('TABLE_NAME', 'ABC', []); ShowMessage(ADODataset1.FieldByName('INDEX_NAME').AsString); [/code] |
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
GrandRURU 大大謝謝您的回應,但照你說的還是不行!!! http://delphi.ktop.com.tw/board.php?cid=31&fid=97&tid=94472 http://delphi.ktop.com.tw/download.php?download=upload/487d65fbe9e3a_OpenSchema.exe ===================引 用 GrandRURU 文 章=================== [code cpp] ADOConnection1->Open(); ADOConnection1->OpenSchema(siIndexes, EmptyParam, EmptyParam, ADODataSet1); ADODataSet1->Open(); ADODataSet1->Locate('TABLE_NAME', 'ABC', []); ShowMessage(ADODataset1->FieldTypeNames('INDEX_NAME')->AsString); [/code] |
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
------
Just Do It ------------------------- 其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。 |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
好心的 GrandRURU 大大謝謝您又來關心我的問題!!! SORRY!!! 檔案真的有問題,我重新更新了!!! http://delphi.ktop.com.tw/board.php?cid=31&fid=97&tid=94472 http://delphi.ktop.com.tw/download.php?download=upload/487d65fbe9e3a_OpenSchema.exe
編輯記錄
salo0610 重新編輯於 2008-07-22 17:59:31, 註解 無‧
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
1.EmptyParam未定義
2.字串請用「"」 3.ADODataset裡沒有「FieldTypeNames」成員 4.請試著找站內的資料,去了解Locate的用法 5.LocateOptions未定義 6.DataSet請指向一個資料庫並定義DataSet的型別 以上,請參閱「C Builder資料庫程式設計」一書 以下是修改後的程式內容: [code cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { OleVariant EmptyParam; EmptyParam.VType = varError; ADOConnection1->Open(); ADOConnection1->OpenSchema(siIndexes, EmptyParam, EmptyParam, ADODataSet1); ADODataSet1->Open(); TLocateOptions opts; opts.Clear(); ADODataSet1->Locate("TABLE_NAME", "ABC", opts); ShowMessage(ADODataSet1->FieldByName("INDEX_NAME")->AsString); ADOConnection1->Close(); } [/code] |
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
GrandRURU大大謝謝你的回應!! 但執行後會有錯誤訊息!!! 且 BC B help 裡是有說到 EmptyParam 這東西的,應該不用在定義吧??(只是我不會用而以 ) ,且我用 delphi 就不用定義!! EmptyParam variable Returns an OleVariant that represents an unused optional parameter on a dual interface. Unit Variants Category Variant support routines extern PACKAGE OleVariant EmptyParam; Description: When marshaling interface calls that include optional parameters, COM requires a value for those parameters even when they are not used. EmptyParam returns an OleVariant you can pass as that value to indicate that the parameter is not used.
編輯記錄
salo0610 重新編輯於 2008-07-23 09:08:32, 註解 無‧
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
我不是大大…因為我也不知道OpenSchema是做什麼用的
還麻煩你說一下你的程式邏輯,謝謝 原來…少加一行就出錯了 [code cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { OleVariant EmptyParam; EmptyParam.VType = varError; EmptyParam.VError = 0x80020004; ADOConnection1->Open(); ADOConnection1->OpenSchema(siIndexes, EmptyParam, EmptyParam, ADODataSet1); ADODataSet1->Open(); TLocateOptions opts; opts.Clear(); ADODataSet1->Locate("TABLE_NAME", "ABC", opts); ShowMessage(ADODataSet1->FieldByName("INDEX_NAME")->AsString); ADOConnection1->Close(); } [/code] |
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
GrandRURU 謝謝你!! 可以了!!
對了你知道 OleVariant 怎麼用嗎?? 有相關資料嗎? OleVariant EmptyParam; EmptyParam.VType = varError; EmptyParam.VError = 0x80020004; 主要時早期出去的軟体,在某個資料 table 表的某個欄位沒有建立 index,在初期時資料量不大時還ok!! 但之後此資料表資料長大了,在 select 時速度太慢了,所以才想到要在此資料表的這欄位建立 index !! 所以要在程式開啟時,檢查沒有建立的話,要建立 index !!! OpenSchema 我也不清處在做什麼的,我是搜尋站內文章找的的相關資料!!! 如何取Access index Name ? http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=85803 ===================引 用 GrandRURU 文 章=================== 我不是大大…因為我也不知道OpenSchema是做什麼用的 還麻煩你說一下你的程式邏輯,謝謝 原來…少加一行就出錯了 [code cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { OleVariant EmptyParam; EmptyParam.VType = varError; EmptyParam.VError = 0x80020004; ADOConnection1->Open(); ADOConnection1->OpenSchema(siIndexes, EmptyParam, EmptyParam, ADODataSet1); ADODataSet1->Open(); TLocateOptions opts; opts.Clear(); ADODataSet1->Locate("TABLE_NAME", "ABC", opts); ShowMessage(ADODataSet1->FieldByName("INDEX_NAME")->AsString); ADOConnection1->Close(); } [/code] |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |