Gostaria de saber como eu descubro a chave primária e se um campo é auto_numeração ou não. Com a base de dados sendo em access (.mdb).
Peguei um script no forum do imasters que lista todas as tabelas e nome de campos de uma tabela. Então dei uma modificada:
<%@Language="VBScript"%>
<%
Set Cn = CreateObject("ADODB.Connection")
ConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd.mdb")
Cn.Open ConnString
Set cat = CreateObject("ADOX.Catalog")
cat.ActiveConnection = cn
for i = 0 to cat.tables.count - 1
if lcase(cat.tables(i).type) = "table" Then
set rs = server.createobject("adodb.recordset")
rs.open "select * from " & cat.tables(i).name, cn, 1,3,1
response.write "<hr>" & "Tabela: " & cat.tables(i).name & "<hr>"
for x = 0 to rs.fields.count - 1
response.write "<div style=""font-size:12px"">Campo: " & rs.fields(x).name
response.write " - Tipo: " & rs.fields(x).type
response.write " - Tamanho definido: " & rs.fields(x).DefinedSize
response.write " - Atributos: " & rs.fields(x).Attributes
response.write " - Precisão: " & rs.fields(x).Precision & "</div>"
next
end if
next
rs.close
Cn.Close
Set rs = Nothing
Set Cn = Nothing
%>A parte que lista os campos listei algumas propriedades que podem ser utéis como o tipe, DefinedSize, Attributes e Precision. O type lista o código do tipo de dados, o DefinedSize o tamanho do campo (pelo menos acredito que é isso, e o resto não sei o que faz. Talvez a saida esteja nesta propriedade Attributes, ele gera uns códigos que ao que tudo indica ele gera 16 para autonumeraveis e 116 para não auto_numeraveis (Alguém poderia me confirmar isso?). Porque pelo type não é possível saber se ele é ou não auto_numeravel.
Nos código me basei nestas duas url:
Type: http://www.w3schools...o/prop_type.asp
Attributes: http://www.w3schools..._attributes.asp
Se alguém souber de algo por favor poste ai,
Grato,
Xandão Grunge










