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

為何不能打開資料庫內所有的資料表格

尚未結案
a120803
初階會員


發表:61
回覆:66
積分:25
註冊:2003-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-10 22:04:11 IP:163.25.xxx.xxx 未訂閱
請問大大: 為何不能打開資料庫內所有的資料表格 for (int i = 0; i < Database1->DataSetCount; i ) { if (Database1->DataSets[i]->ClassNameIs("TTable")) DataSets[i]->Open(); }
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-10 22:46:27 IP:203.204.xxx.xxx 未訂閱
a120803, 您好 不了解您說不能打開資料庫內所有的資料表格是什麼意思? (1)Database1->DataSetCount;要其值大於零的話,其connection的DataSet必須是Active = true;也就是必須是open的。以下是我由help檔查出的資料,供您參考。 Indicates the number of active datasets associated with the connection component.    (2)DataSets[i]->Open();應該是Database1->DataSets[i]->Open();吧?? 由( > 還是您是要經由這個 > ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 <>是非終日有,不聽自然無 <>天下本無事,庸人自擾之
a120803
初階會員


發表:61
回覆:66
積分:25
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-11 01:02:30 IP:163.25.xxx.xxx 未訂閱
謝謝大大: 我是想要一次開啟所有關閉的資料表格 不知如何寫啊
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-12 00:56:54 IP:203.204.xxx.xxx 未訂閱
a120803, 您好 請問您是使用什麼資料庫? 我找到了一個方法或許可以符合您的需求, 不過這方法是針對MSSQL的資料庫, 如果您也是用MSSQL的資料庫, 我再將Project上傳。 至於其他的資料庫, 就要等我有時間再測試看看囉! ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 <>是非終日有,不聽自然無 <>天下本無事,庸人自擾之
a120803
初階會員


發表:61
回覆:66
積分:25
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-13 18:44:54 IP:163.25.xxx.xxx 未訂閱
謝謝大大: 我是用Visual Foxpro,另外MSSQL也可以上傳給我看看
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-14 01:30:43 IP:203.204.xxx.xxx 未訂閱
a120803, 您好 如果是用MSSQL的話 有以下兩種方法:
(1)先設定好ADOConnection1的屬性,例如:ConnectionString(用來得知您的Database),Connected=true(確定有連結上Database)
ADOConnection1->GetTableNames(ListBox1->Items, false); // 得知這個Database有多少Table及TableName
for (int i = 0; i < ListBox1->Items->Count; i  )
   ADOConnection1->DataSets[i]->Open();    (2)一樣要先設定好ADOConnection1的屬性,將ADOQuery2的Connection屬性設為ADOConnection1,然後由以下的code查詢出這個Database有多少Table及TableName
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES ";
ADOQuery2->Open();
for (int i = 0; i < ADOQuery2->RecordCount; i  )
{
   ADOConnection1->DataSets[i]->Open();
   ADOQuery2->Next();
}
以上兩種方法都可以一次將Database裡的所有Table都做Open的動作。 因為我不懂Visual Foxpro,所以不知道是否也可以透過TADOConnection元件來連結,如果可以的話,用(1)方法就可以解決了。 如果不行,而一定要用TDatabase元件的話,可能會有麻煩。我查過TDatabase元件,好像Table一定要Open,這樣TDatabase元件才會有紀錄,不然就無法得知。 如果有前輩有這方面經驗的,請指教。 ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 <>是非終日有,不聽自然無 <>天下本無事,庸人自擾之
系統時間:2024-04-23 17:33:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!