台灣最大程式設計社群網站
線上人數
698
 
會員總數:245123
討論主題:189032
歡迎您免費加入會員
討論區列表 >> 其他DB >> About_AS400
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
About_AS400
價值 : 50 QP  點閱數:2859 回應數:6

樓主

sparkdeng
初級顧問
12942 20
5636 867
發送站內信

Dear 各位先進:

一般來說在MySQL下達,可得到所有的Table name
Show Tables
下達,可得到schema
show columns from dat_customer

近來在公司剛接觸到AS400
要如何下SQL 可以得到Tables及Schema呢??

本篇文章發表於2008-01-24 07:52
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

純真的人
捐贈 VP 給 純真的人 檢舉此回應
沒用過..但用Google幫你查一下..

http://thesource.ofallevil.com/taiwan/community/Developer_TechTalk_Q&A_0129.htm

------------------------------------------------
Q68: 是否有人透過ADO.Net(不論是OleDB Connection或ODBC Connection)成功連接AS/400資料庫. 是否可以告知Client Access 以及OS/400的版本為何?還有connection string應如何設定

A: It's OK. Use 3-party ODBC Connection, OledbforOdbc

------------------------------------------------
Q32: 在ADO.Net之下用什麼方法可以取得資料庫(SQL, ACCESS)中 user table 以及 table中的column定義的結構資訊?

A: 這個問題目前無法透過ADO.NET(ADO也是)來解決, 您可以使用ADOX(這是一個COM object)搭配ADO來解決此問題, 參考以下範例:

首先將ADO與ADOX(Microsoft ADO Ext. 2.7 for DDL and Security, 版本視您機器上 安裝的MDAC而定)加入reference, 便可使用下列的範例程式. ADODB.Connection conn = new ADODB.ConnectionClass(); conn.Open(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Northwind.mdb;", "", "", 0);

ADOX.Catalog adox = new ADOX.CatalogClass();

adox.ActiveConnection = conn;

foreach (ADOX.Table table in adox.Tables) { MessageBox.Show(table.Name); } conn.Close();

如果您只需要列出所有的資料表, 可以由table.Type來判斷(VIEW/ACCESS TABLE/SYSTEM TABLE/TABLE)

-------------------------------------------------

******************************************************************
也就是說找不到透過SQL查詢方式~但可以在程式裡面,用建立物件方式列出所有的資料表...
本篇文章回覆於2008-01-24 10:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

sparkdeng
檢舉此回應
Dear 純真的人:
ADOX可用,可以找出Table Name

問題又來了 , 要怎麼找出Schema呢??

再次謝謝指教
本篇文章回覆於2008-01-27 08:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

純真的人
捐贈 VP 給 純真的人 檢舉此回應
>>問題又來了 , 要怎麼找出Schema呢??
他這句就有寫了..

Ans:如果您只需要列出所有的資料表, 可以由table.Type來判斷(VIEW/ACCESS TABLE/SYSTEM TABLE/TABLE)

就是for迴圈出總欄位及欄位類型(table.Type)及屬性~
本篇文章回覆於2008-01-28 12:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

sparkdeng
檢舉此回應
Dear 純真的人:
經過了幾天努力 , 還是沒辦法從ADOX取得Table Schema
本篇文章回覆於2008-02-02 07:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

純真的人
捐贈 VP 給 純真的人 檢舉此回應
ㄟ?ADOX?
再第2回應的裡面~你不是已經找到可以輸出所有的Table Name

那接下來那當然是用ADO物件來取得Table Schema吧?不是ADOX吧?
Ex:
Sql = "select * from " & table.Name

所以在那篇問答裡面,就是要使用兩個物件(ADO及ADOX)找出資料庫裡面~所有的資料表的方式~



本篇文章回覆於2008-02-02 16:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

sparkdeng
檢舉此回應
可惜無法得到table schema
本篇文章回覆於2008-02-03 13:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.