如何用BCB(by ADO)來設計MS Access |
答題得分者是:azurecloud
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
請問如何用BCB(by ADO)來設計MS Access,要能列出資料庫裡面的資料表,及各個欄位的資料型態,資料表的建立及刪除...等等功能,只要能支援開啟Access(.mdb)即可,不需支援其他的資料庫,目前我已經能列出資料表,但是在列出每個欄位的資料型態時無法像Access一樣可以有下拉式選單可以更,主要是因為我是用StringGride去顯示資料表每個欄位的類型,我不知道該怎麼讓StringGride的欄位可以有下拉式選單還是說有其他的元件可以替代的,請問誰有範例檔案,或是知道哪裡有文件的(我在微軟的MSDN找過了,但是我不知道該用什麼關鍵字去搜尋,所以找不到我要的)?謝謝了...
|
azurecloud
中階會員 發表:52 回覆:108 積分:92 註冊:2003-09-04 發送簡訊給我 |
Hi, GGL 您好:
看了您的問題好幾天尚無人回覆,我想提供您另一個想法,以下是以一個
Delphi 的 ADO 物件進 ACCESS Create 一個 table,是可以 work 的,我的重
點在於 sqlstr 這個字串的合成(以 BCB 的語法合成),然後再用類似 adoquery
物件將語法送出執行,就可以在 ACCESS 資料庫中建立資料表。
(抱歉加號顯示不出來,用十代替)
procedure TForm1.Button1Click(Sender: TObject);
var sqlstr : string;
begin
adoquery1.SQL.Clear;
sqlstr := 'create table test ( ';
sqlstr := sqlstr 十 ' num varchar(30) , ';
sqlstr := sqlstr 十 ' date1 varchar(30) , ';
sqlstr := sqlstr 十 ' item varchar(30) , ';
sqlstr := sqlstr 十 ' amount numeric(9) ) ';
adoquery1.sql.add(sqlstr);
adoquery1.ExecSQL;
end; 那麼下拉式表單您可以自己建立,視使用者的選擇替換相對應的型態字元
例: IF ComboBox.Text := '文字' then sqlstr := sqlstr 十 ' 欄位名稱 varchar(長度) , '; 讓 stringgrid 可以有下拉式選單的站上有 ADVStringgrid 可用,也有 BCB
版本,您可搜尋一下。上述解法還有一個問題是:ACCESS 中的型態是用中文
如 文字、數字等,我查不到相對應的英文(也就是 SQL 語法中真正要用的型態)
您可能要再查一下。希望對您有幫助。 ========================
我要努力向上~~[/h5]======================== |
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
原來ValueListEditor可以做出下拉式選單的功能....
ValueListEditor1->InsertRow("test","10",true);
ValueListEditor1->ItemProps[0]->PickList->Add("1");
ValueListEditor1->ItemProps[0]->PickList->Add("2");
ValueListEditor1->ItemProps[0]->PickList->Add("3");
ValueListEditor1->ItemProps[0]->PickList->Add("4");
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
folkchen
高階會員 發表:9 回覆:232 積分:173 註冊:2003-10-09 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
引言: 不同的資料庫的SQL 多多少少都有差異 就算同樣是 M$ 出的 SQL Server 和 Access 的SQL都不完全一樣 不可能在這裡說的清楚 你去買書來看吧 有一本SQL的書 同一個範例同時有 Oracle、SQL Server、Access、Ansi SQL的寫法 就可以比較出差異了 內容很容易懂,是一本入門書 書名: 入門SQL 出版社: 博碩文化 DB20039謝謝folkchen推薦我這本書,我去書局找過了,沒看到這一本,只有找到"實踐SQL"這本書,我稍微翻了一下雖然有介紹Oracle、SQL Server、Access的語法,但是基本上大多是Oracle跟SQL Server,很少有Access的,可能Access與MS SQL語法相同吧,我又翻了另外一本旗標的SQL Server 2000設計實務,裡面有談到如何修改欄位及資料表名稱的用法sp_rename,但是我試了一下還是無法成功... 我的語法是這樣:EXEC sp_rename Test_Table.[tese], title, COLUMN 請問一下,我有寫錯嗎? (ps.MSDN sp_rename:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_ra-rz_3ns5.asp) |
azurecloud
中階會員 發表:52 回覆:108 積分:92 註冊:2003-09-04 發送簡訊給我 |
嗯,這也是我查了很久沒有回應你的問題的原因,MS 討厭的地方在於它的產品
常常互不相容,例如舊版的 Office 無法讀 新版的文件也是一樣。
ACCESS 和 MS SQL Server 很像,但其實並不一樣,例如 MS SQL 的萬用字元
是 % 和 _ 而 ACCESS 則是 * 和 ?;而且… ACCESS 的說明文件是中文的,常
找不到相對應的 SQL 語法的說明…
你所說的語法是 MS SQL 獨特的產物,那個 sp_rename 應該是它自己定義的,
而非 ANSI SQL 相容,ACCESS 也沒有。
言歸正傳,我查了許久,還真得查不到 SQL 語法中有改變 Table Name 的語法
,Alter 指令只能改欄位名稱,我和我同學討論的結果,結論是 ---
Select into 指令!缺點是資料量大時就有得等了
另一個結論:到底是誰有需要隨時修改資料表名稱?一個規劃完整的資料庫,
而且其中已輸入大量資料的話,資料關聯圖應該都已建好了,這時改其中一資
料表的名稱會造成混亂的狀況,或許是這樣,所以沒有改資料表名字的 SQL 語
法吧…
在 ACCESS 中,用 查詢 --> 使用設計檢視建立新查詢 --> 按滑鼠右鍵 -->
選 SQL 檢視,可看到 新增(Select)、修改(Update)、刪除(Delete)、插入(Insert)
的 SQL 碼,但看不見如 Create Table、Drop Table、Alter Table 等等的指
令,我現在的做法是先用 MS SQL Analyzer 先測過 SQL 語法可執行後,再貼
回 ACCESS 中測試,祝好運,如果您整理出或找出 ACCESS 的 SQL 語法 請貼
回站上和大家分享哦! ========================
我要努力向上======================== |
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
引言: .............................. 我現在的做法是先用 MS SQL Analyzer 先測過 SQL 語法可執行後,再貼 回 ACCESS 中測試,祝好運,如果您整理出或找出 ACCESS 的 SQL 語法 請貼 回站上和大家分享哦! ========================請問一下,你說先用 MS SQL Analyzer 先測過再貼到Access中測試...問一個很蠢的問題,我要貼到Access的哪裡測試呢?我找了很久還是沒看到Access可以測試SQL語法的地方... |
azurecloud
中階會員 發表:52 回覆:108 積分:92 註冊:2003-09-04 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |