155 messaggi dal 13 febbraio 2001
Ciao ragazzi
Ho questo problemuccio, nel buon vecchio asp per avere la lista dei Field associati a una tabella e le relative definizioni dei campi si eseguiva una query su quella determinata tabella pressapoco così.
<code>

sql = "select * from tabella"
set rs = objdbconnection.execute(sql)
For i = 0 To RS.Fields.Count - 1
RS.Fields(i).Name
RS.Fields(i).Type
RS.Fields(i).DefinedSize
next

</code>

In ASP.NET utilizzando ADO.NET e in particolare ODBCDataReader si crea appunto questo DataReader ma come si fa a prelevare i dati dei Field associati a quel DataReader, stavo provando con l'oggetto GetFieldType ma con scarso successo, sapete come si fa?

Forse occorre utilizzare al posto del ODBCDataReader un altro oggetto?
Ciao
M@X

Set MyWorld = new System.Live.With.Fantasy

http://www.DynaGate.it

Modificato - maxblli2 - 18 Mag 2002 14:43:08
155 messaggi dal 13 febbraio 2001
Ecco la soluzione....
Un pò complicato nel trovare la soluzione ma alla fine ci sono riuscito!

<code>
sql = "Select * from tabella"
DR = ObjDataBase.ExecuteRead(sql)

Dim myField As DataRow
Dim myProperty As DataColumn
Dim schemaTable As DataTable = DR.GetSchemaTable

For Each myField In schemaTable.Rows

For Each myProperty In schemaTable.Columns
httpresponse.write(myField("IsKey").ToString() & "&lt;br&gt;")
httpresponse.write(myField("ColumnName").ToString() & "&lt;br&gt;")
httpresponse.write(myField("ColumnSize").ToString() & "&lt;br&gt;")

httpresponse.write(myField("ColumnOrdinal").ToString() & "&lt;br&gt;")
httpresponse.write(myField("NumericPrecision").ToString() & "&lt;br&gt;")
httpresponse.write(myField("NumericScale").ToString() & "&lt;br&gt;")
httpresponse.write(myField("DataType").ToString() & "&lt;br&gt;")
httpresponse.write(myField("ProviderType").ToString() & "&lt;br&gt;")
httpresponse.write(myField("IsLong").ToString() & "&lt;br&gt;")
httpresponse.write(myField("AllowDBNull").ToString() & "&lt;br&gt;")
httpresponse.write(myField("IsReadOnly").ToString() & "&lt;br&gt;")
httpresponse.write(myField("IsRowVersion").ToString() & "&lt;br&gt;")
httpresponse.write(myField("IsUnique").ToString() & "&lt;br&gt;")
httpresponse.write(myField("IsAutoIncrement").ToString() & "&lt;br&gt;")
httpresponse.write(myField("BaseSchemaName").ToString() & "&lt;br&gt;")
httpresponse.write(myField("BaseCatalogName").ToString() & "&lt;br&gt;")
httpresponse.write(myField("BaseTableName").ToString() & "&lt;br&gt;")
httpresponse.write(myField("BaseColumnName").ToString() & "&lt;br&gt;")
Next
httpresponse.write("&lt;br&gt;&lt;br&gt;")

Next
</code>

M@X

Set MyWorld = new System.Live.With.Fantasy

http://www.DynaGate.it
23 messaggi dal 20 giugno 2002
So che la discussione è un po' vecchia, però spero che uno di voi possa ancora rispondermi.

E' possibile leggere i campi e le proprietà dei campi (io uso Open.Schema), ma non sono ancora riuscito a capire come fare a scriverli o modificarli.



---- il codice che uso per leggere --------

set adox = Server.CreateObject("ADOX.Catalog")
adox.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&nomeDatabase&";"
set t = adox.Tables.Item(nomeTabella)

For Each K In t.Columns
response.write "<Nome="&K.Name&"<BR>"
response.write "Tipo: "&K.Type)&"<BR>"
for d=0 to K.Properties.Count-1
response.write K.Properties(d).Name&"="K.Properties(d)&"<BR>"
next
Next


--- FINE CODICE ---

Ciao, grazie per l'aiuto


Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.