用ADox獲得表的唯一索引

來源:互聯網
上載者:User
ado|索引 adox的功能據說很強大,但是我沒感覺出來,因為我在asp下編寫了很多程式,都運行不了。不知道什麼原因,這裡有一個程式可以獲得唯一索引。可能有的朋友會做一些通用程式,也就是無論資料結構如何變化,程式不變,從資料錄入,修改,刪除,到資料檢索。所有模組都是完全獨立於資料庫表的結構的。這樣就需要獲得該表的唯一索引。因為要通過唯一索引來標示當前要刪改的是那條記錄。如果一個表是正規的表的話,應該至少有一個唯一索引,因為表應該有主鍵,而主鍵就是唯一索引。我嘗試用adox.key獲得表的主鍵,出錯!不知道什麼原因。還有,我也嘗試用index的primarykey來獲得該索引是否為主鍵,但是無論什麼索引,都返回true。無奈之下,只有通過判斷其是否為unique。結果發現這種方法真的很好。只是最後程式返回的是一個由n(n>=1)個欄位組成的字串,中間用逗號(,)分隔開的。不過大多數的唯一索引都是有一個欄位組成的。我們還可以根據需要判斷這些欄位的類型等資訊。方然這個也不是獲得唯一索引的唯一方法。通過資料連線的openschema方法開啟一個模式查詢,也可以獲得一個表的主關鍵字,詳細方法見 [?這裡?] 。

connstr = "Provider=MSDAORA.1;User ID=liujincai;password=ljc1001;Data Source=hp1"
set AdoX = server.createobject("adox.catalog")
set fld = server.createobject("adox.column")
set tt=server.CreateObject("adox.table")
AdoX.ActiveConnection = connstr
set tt=adox.Tables("TB_HOUSE_MAIN")
set kk=server.CreateObject("adox.key")
set idx=server.CreateObject("adox.index")
Response.Write "Table:" & tt.Name
Response.Write " < TABLE border=1>
< TBODY>
< TR bgColor=#e0d0c0>
< TD>column name< /TD>
< TD>column type< /TD>
< TD>columnsize< /TD>< /TR>"
for i=0 to tt.Columns.count-1
set fld = tt.Columns(i)
lType = fld.Type
lSize = fld.DefinedSize
Response.Write " < TR bgColor=#f0e0d0>< TD>" &fld.Name & "< /TD>"
Response.Write ltype
Response.Write "< /TD>< TD>"
Response.Write lsize
Response.Write "< /TD>< /TR>"
next
Response.Write "< /TBODY>< /TABLE>"
cols=""
for i=0 to tt.Indexes.count-1
set idx=tt.Indexes(i)
if idx.Unique=true then
for j=0 to idx.Columns.count-1
cols=cols & "," & idx.Columns(j).Name
next
exit for
end if
next
if cols<>"" then
cols=mid(cols,2,len(cols)-1)
Response.Write "可唯一標示欄位:"&cols



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。