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

可否協助將Delphi 的 code 轉成 BC++B,(關於 OpenSchema...)

答題得分者是:GrandRURU
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-15 10:39:16 IP:220.132.xxx.xxx 未訂閱
各位大大你們好:

我想將以下的 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
站務副站長


發表:235
回覆:1655
積分:1753
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-15 17:42:17 IP:210.66.xxx.xxx 未訂閱
[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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-07-16 11:10:41 IP:220.132.xxx.xxx 未訂閱

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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-07-16 11:33:46 IP:203.67.xxx.xxx 訂閱
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
GrandRURU
站務副站長


發表:235
回覆:1655
積分:1753
註冊:2005-06-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-07-22 13:34:04 IP:203.75.xxx.xxx 未訂閱
你的專案檔解開後是空的,請再確認
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-07-22 17:58:24 IP:220.132.xxx.xxx 未訂閱

好心的 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
站務副站長


發表:235
回覆:1655
積分:1753
註冊:2005-06-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-07-23 08:26:34 IP:203.75.xxx.xxx 未訂閱
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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-07-23 09:07:11 IP:220.132.xxx.xxx 未訂閱

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
站務副站長


發表:235
回覆:1655
積分:1753
註冊:2005-06-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-07-23 11:46:13 IP:203.75.xxx.xxx 未訂閱
我不是大大…因為我也不知道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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-07-23 13:00:49 IP:220.132.xxx.xxx 未訂閱
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
站務副站長


發表:235
回覆:1655
積分:1753
註冊:2005-06-21

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-07-23 16:18:04 IP:203.75.xxx.xxx 未訂閱
我是在csdn上找到的資料
但因為我沒在用ADO,所以沒辦法回答你的問題,SORRY

另外,這是我找到來源的網址:
http://topic.csdn.net/t/20060103/12/4495884.html
系統時間:2017-12-18 1:46:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!