利用opendialog 開啟資料庫的資料表 |
尚未結案
|
ann0509
一般會員 發表:19 回覆:42 積分:12 註冊:2010-08-09 發送簡訊給我 |
[code delphi] procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.Execute then begin AdoTable1.Active := false; ADOTable1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\qc01\桌面\Data\student.mdb'; ADOTable1.TableName:=edit1.text; AdoTable1.Active := true; end; end; end. [/code] 我原本的程式 是可以選擇 資料庫 但是資料表的名稱 要利用edit1先輸入 才可以選擇資料庫 我想改成 當我利用opendialog 開啟資料庫時 可以出現我所選擇的資料庫 裡面所有的資料表 然後我可以選擇我要哪一個資料表 顯示在DBGrid1 |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
請先爬文~
關鍵字可以用"GetTableNames"或"取得資料表" 來找文 ===================引 用 ann0509 文 章=================== [code delphi] procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.Execute then begin AdoTable1.Active := false; ADOTable1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\qc01\桌面\Data\student.mdb'; ADOTable1.TableName:=edit1.text; AdoTable1.Active := true; end; end; end. [/code] 我原本的程式 是可以選擇 資料庫 但是資料表的名稱 要利用edit1先輸入 才可以選擇資料庫 我想改成 當我利用opendialog 開啟資料庫時 可以出現我所選擇的資料庫 裡面所有的資料表 然後我可以選擇我要哪一個資料表 顯示在DBGrid1 |
ann0509
一般會員 發表:19 回覆:42 積分:12 註冊:2010-08-09 發送簡訊給我 |
https://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=75063
我利用這個方法 procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.Execute then begin AdoTable1.Active := false; ADOTable1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\qc01\桌面\Data\student.mdb'; ADOConnection1.GetTableNames('TableName',DBListBox1); AdoTable1.Active := true; end; end; end. 可是卻出現 incompatible types:'Tstring' and 'String' incompatible types:'Boolean' and 'TDBListBox' 的錯誤呢 請問我是哪裡弄錯了嗎? |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
第一個要帶入的是TStrings
第二個要帶入的是:是否要SystemTables 你代入'TableName',DBListBox1 當然會錯 而且 該篇文章中 cashxin2002大大明明不是這樣寫的... ADOConnection1.GetTableNames(ListBox1.Items, False); ===================引 用 ann0509 文 章=================== https://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=75063 我利用這個方法 procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.Execute then begin AdoTable1.Active := false; ADOTable1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\qc01\桌面\Data\student.mdb'; ADOConnection1.GetTableNames('TableName',DBListBox1); AdoTable1.Active := true; end; end; end. 可是卻出現 incompatible types:'Tstring' and 'String' incompatible types:'Boolean' and 'TDBListBox' 的錯誤呢 請問我是哪裡弄錯了嗎? |
ann0509
一般會員 發表:19 回覆:42 積分:12 註冊:2010-08-09 發送簡訊給我 |
procedure TForm1.Button1Click(Sender: TObject);
begin if opendialog1.Execute then begin AdoTable1.Active := false; ADOTable1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\qc01\桌面\Data\student.mdb'; ADOConnection1.GetTableNames(ListBox1.Items, False); ADOConnection1.GetTableNames('TableName',DBListBox1); AdoTable1.Active := true; end; end; end. 應該是要這樣嗎 請問怎麼轉成一樣型態? |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
在該文章中
cashxin2002GetTableNames(ListBox1.Items, False); //False參數為不讀取系統資料表名稱 ADOConnection1.GetFieldNames('TableName', ListBoxItems); 這兩個語法很明顯的不一樣 您怎麼把第二個語法中的內容套用在第一個語法中呢? 而且他的第二個語法也只是”提示怎麼用” 並不是您跟著照打就會對 GetTableNames所要帶入的第一個是可以放TStrings的元件 而第二個是要設定是否要有系統資料表 一般都不設 另外~ 請在Delphi中在下語法時 Delphi都有提示要該參數是什麼東西(滑鼠移到GetTableNames上也會出現) 所以您應該先把這些都看過一次 才會知道要怎麼寫 ===================引 用 ann0509 文 章=================== procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.Execute then begin AdoTable1.Active := false; ADOTable1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\qc01\桌面\Data\student.mdb'; ADOConnection1.GetTableNames(ListBox1.Items, False); ADOConnection1.GetTableNames('TableName',DBListBox1); AdoTable1.Active := true; end; end; end. 應該是要這樣嗎 請問怎麼轉成一樣型態? |
ann0509
一般會員 發表:19 回覆:42 積分:12 註冊:2010-08-09 發送簡訊給我 |
我選用這個方法 ADOConnection1. 大大是寫: ADOConnection1.GetFieldNames('TableName', ListBoxItems); 這兩個語法很明顯的不一樣 您怎麼把第二個語法中的內容套用在第一個語法中呢? 而且他的第二個語法也只是”提示怎麼用” 並不是您跟著照打就會對 GetTableNames所要帶入的第一個是可以放TStrings的元件 而第二個是要設定是否要有系統資料表 一般都不設 另外~ 請在Delphi中在下語法時 Delphi都有提示要該參數是什麼東西(滑鼠移到GetTableNames上也會出現) 所以您應該先把這些都看過一次 才會知道要怎麼寫 ===================引 用 ann0509 文 章=================== procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.Execute then begin AdoTable1.Active := false; ADOTable1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\qc01\桌面\Data\student.mdb'; ADOConnection1.GetTableNames(ListBox1.Items, False); ADOConnection1.GetTableNames('TableName',DBListBox1); AdoTable1.Active := true; end; end; end. 應該是要這樣嗎 請問怎麼轉成一樣型態? |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
LoginPrompt設False
===================引 用 ann0509 文 章=================== 我選用這個方法 ADOConnection1. 大大是寫: ADOConnection1.GetFieldNames('TableName', ListBoxItems); 這兩個語法很明顯的不一樣 您怎麼把第二個語法中的內容套用在第一個語法中呢? 而且他的第二個語法也只是”提示怎麼用” 並不是您跟著照打就會對 GetTableNames所要帶入的第一個是可以放TStrings的元件 而第二個是要設定是否要有系統資料表 一般都不設 另外~ 請在Delphi中在下語法時 Delphi都有提示要該參數是什麼東西(滑鼠移到GetTableNames上也會出現) 所以您應該先把這些都看過一次 才會知道要怎麼寫 |
ann0509
一般會員 發表:19 回覆:42 積分:12 註冊:2010-08-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |