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

請教關於使用DBGRID 列中數值相減問題

尚未結案
student38
一般會員


發表:22
回覆:13
積分:7
註冊:2010-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-08-16 15:22:46 IP:120.114.xxx.xxx 訂閱
有關於DBGRID的行相減是使用
[code cpp]
int a1,a2,a12;
a1=ADOTable1->Fields->Fields[1]->AsInteger;
a2=ADOTable1->Fields->Fields[2]->AsInteger;
a12=a2-a1;
mReceive->Text=mReceive->Text a12 " ";

[/code]
經由書上所教導的確可以使行相減功用用出來,但是關於列的位址則是取出全部

[code cpp]
String szStr;

ADOTable1->Next();
if (ADOTable1->Eof!=True)
{
szStr = ADOTable1->FieldByName("角度")->AsString;
//mReceive->Lines->Add( szStr);
mReceive->Text=mReceive->Text szStr " ";
}
else
{ Timer1->Enabled=false;
ShowMessage("最後一個!!");

}

[/code]
所顯示使用的是角度那一行全部,想請教要列的數值位址該如何取出@@?
請先進不吝教導<_ _>


編輯記錄
student38 重新編輯於 2011-08-16 01:23:11, 註解 無‧
student38 重新編輯於 2011-08-16 01:23:50, 註解 無‧
rick060
高階會員


發表:2
回覆:112
積分:217
註冊:2009-11-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-08-18 09:06:21 IP:60.250.xxx.xxx 未訂閱
 抱歉..

我看不懂你的問題是什麼.
student38
一般會員


發表:22
回覆:13
積分:7
註冊:2010-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-08-18 12:10:25 IP:120.114.xxx.xxx 訂閱
抱歉,可能是我敘述的不明白  我的意思是指 dbgrid 行的值可以用下列方法取出來,用Fields[1]可以取出設定的值
[code cpp]
int ch,en,ma;
//取得语文成绩
ch=ADOTable1->Fields->Fields[2]->AsInteger;

[/code]
我不知道 列 的該如何取出單一值
ex: 0
1
2
3 取出2
是否有像行的公式取出 單一值
謝謝 不吝指教
編輯記錄
student38 重新編輯於 2011-08-17 22:10:57, 註解 無‧
rick060
高階會員


發表:2
回覆:112
積分:217
註冊:2009-11-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-08-18 16:51:44 IP:60.250.xxx.xxx 未訂閱
adotable 資料的操作,想像有一個指針指向第幾筆資料,那個指針叫做 cursor


adoTable->First(); //指針移到第一筆資料
adoTable->FieldByName("Data")->AsString; //第一筆資的 "Data"欄位的值


adoTable->Next(); //指針移到當前位置的下一筆,以此例,指針來到第二筆資料
adoTable->FieldByName("Data")->AsString; //第二筆資的 "Data"欄位的值

以下以此類推。

故完整取出table 值的概略方式就是一筆一筆取出來

while( !adoTable->Eof) //如果指針還指向有效資料
{
//取值
adoTable->Next; //指針移到當前位置的下一筆
}

剩下的就靠你自己了
student38
一般會員


發表:22
回覆:13
積分:7
註冊:2010-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-08-18 17:53:14 IP:120.114.xxx.xxx 訂閱
rick060先進所說的功能 我有做出來如下

[code cpp]
String szStr;
ADOTable1->Next();
if (ADOTable1->Eof!=True)
{

szStr = ADOTable1->FieldByName("2")->AsString;
// szStr=ADOTable1->Fields->Fields[2]->AsString;

//mReceive->Lines->Add( szStr);
mReceive->Text=mReceive->Text szStr " ";

}
else
{ Timer1->Enabled=false;
ShowMessage("最後一個!!");

}

[/code]
的確可以把值取出,剛剛琢磨看了一下 C Builder 数据库 程序设计 ,想做出由列取出的數值 3減2
ex:1
2
3
4
功能就像是以下程式(擷取於 C Builder 数据库 程序设计)


[code cpp]
int ch,en,ma;
//取得语文成绩
ch=ADOTable1->Fields->Fields[2]->AsInteger;
//取得英语成绩
en=ADOTable1->Fields->Fields[3]->AsInteger;
//取得数学成绩
ma=ADOTable1->Fields->Fields[4]->AsInteger;
//计算总分,并显示于标签中
Label1->Caption=ma en ch;

[/code]

因為行大部分的功能都是以上程式模式居多,想做出跟行一樣的功能 由列的2種單項數值相減,所以不清楚是否可以做到








編輯記錄
student38 重新編輯於 2011-08-18 03:57:18, 註解 無‧
系統時間:2017-12-12 5:01:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!