Newsgroup: it.comp.lang.visual-basic
Titolo: RecordSet ADO e campi contatore

Ho un recordset e ci faccio un bellissimo AddNew.
Ora devo riempire i campi (i valori me li faccio spedire alla sub con
ParamArray) ma mi trovo davanti ad un bel problema:
Uno di questi campi č un contatore (in futuro potrebbe essere + di uno!)!
Come faccio a far capire a VB che se il tipo del campo del RecordSet č
Contatore deve lasciar stare? Sigh...
Grazie 1000000 a chiunque mi dia una mano... CiaoZ
SebaMixZ

Ho provato RecordSet("NomeCampo").type , ma tra le varie costanti non ve ne
è una che identifichi il tipo contatore.

 Ho provato RecordSet("NomeCampo").type , ma tra le varie costanti non ve
ne è una che identifichi il tipo contatore.
Prima volta che sfioro ADO, quindi scusa se dico una sciocchezza:
Option Explicit
Private Sub Command1_Click()
  Dim i As Integer
  Dim j As Integer
  With Adodc1.Recordset.Fields
    For i = 0 To .Count - 1
      With .Item(i)
        Debug.Print .Name
        With .Properties
          For j = 0 To .Count - 1
            With .Item(j)
              Debug.Print .Name, .Value
            End With
          Next
        End With
      End With
      Debug.Print
    Next
  End With
End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 è una che identifichi il tipo contatore.
Mi pare --- ripeto --- mi pare ...
che se usi ADOX hai la possibilità di testare il tipo di campo contatore.
Forse, addirittura con OpenSchema puoi individuarlo ... (magari c'è qualche
proprietà del Field che non abbiamo visto)
Salut

il campo contatore viene aggiornato da solo, tu non gli devi assegnare
nessun valore...
dopo il rs.addnew devi dare un valore a tutti i campi tranne al campo
contatore...rs("campo1")=valore1...ecc ecc...
prova così e fammi sapere
ciao
sergio


Il povero Sebastiano di fatto non ha chiesto questo ... ha chiesto solo come
si fa a riconoscere se un campo è AutoIncrement ... il fatto che tale campo
sia di sola lettura credo lo sapesse già ...
Ciao

Il problema è che la funzione che voglio implementare deve funzionare con
tutte le possibilità di RecordSet che le possono arrivare...
Quindi, prima di assegnare un valore ad un contatore vorrei sapere se è un
contatore, per evitare l'assegnamento stesso.
In pratica non so:
-se avrò un contatore
-in che posizione sarà il contatore
Sono nato per incasinarMi la vita... ::((((
SebaMix

Bè, il problema lo hai capito...
Magari tra 2 giorni mi salta fuori la soluzione da qualche parte...
::::))))))))

"Maurizio Borrelli"
Sei un MITO!
Forse ho trovato...
IsAutoIncrement...
Giusto?
Grazie!

Funzia!
Thanks!

Debug.Print RS.Fields("id").Properties("IsAutoIncrement").value
True
o
False
Evviva i crauti! ::))

 False
oppure,  se Fields(x).Type = 4 (Long)
testi Fields(x).Attributes
se restituisce 16 o 17 è un campo contatore.
Occhio perché dbAutoIncrField = 16 mentre .Attributes è una
proprietà composita.

 Uno di questi campi č un contatore (in futuro potrebbe essere + di uno!)!
...
Occhio che se usi Access puoi mettere solo un campo contatore!
--
Ciao
*<:-)
VB


tranquillo... è la cosa che ci riesce meglio.. :))

 Grazie!
--
Ciao :-)


 wrote in message
news:91nmj9$lt7$1...@fe1.cs.interbusiness.it...


 Occhio che se usi Access puoi mettere solo un campo contatore!
Ma con altri tipi di DB si puņ?
