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