For Each Fld In RsTableADO.Fields
ReDim Preserve TableauIndex(a)
TableauIndex(a).Champs = RsTableADO!index_name
TableauIndex(a).Type = IIf(InStr(1,
RsTableADO!index_description, "unique") <> 0, True, False)
a = a + 1
Next
Or, en exécutant sp_helpindex dans une vue sous SQL Server, j'ai en retour
ceci :
index_name | index_description | index_keys
{4045B1B4-CDEF-4775-B4C6-FA637B04C6EB} | nonclustered located on PRIMARY |
RefTypeSpec
{9732EC7A-4EE6-4A76-8C51-2DFA4EB6FEF7} | nonclustered located on PRIMARY
RefCatTest
aaaaaTabPFTests_PK | nonclustered, unique, primary key located on PRIMARY |
CodeTest
NumTexte | nonclustered located on PRIMARY | NumTexte
TestAm | nonclustered, unique located on PRIMARY | TestAm
TestFr | nonclustered, unique located on PRIMARY | TestFr
Or que retrouvè-je dans mon TableauIndex après mon code ? Les trois
premières lignes de mon RsTableADO !!!! Alors qu'à la fin mon but est
justement d'éviter celles-ci qui ne m'intéressent pas.
Je ne comprends pas... si quelqu'un peut m'aider en plongeant un peu dans
le code (désolé pour l'absence de commentaires), j'en serais heureux parce
que je pète un câble ! :)
Bonne année à tous,
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Via
Une erreur stupide... c'est le For Each Fld In... qui n'est pas bon. Je veux le nombre d'enregistrements, et non le nombre de champs. Le seul problème est que je n'ai accès ni au RecordCount ni au BOF (je ne sais pas pourquoi d'ailleurs, mais bon) J'ai donc remplacé ça par une boucle Do While 1, et je sors de la boucle quand j'ai une erreur 3021.
Je récupère donc bien tous les index, y compris ceux définis par le système (ceux avec des noms entre {} et celui avec aaaa au début) En fait, ils sont définis sur des relations entre tables, et ils ne m'intéressent pas. Simplement je ne sais pas, avec les infos dont je dispose (index_name, index_description, index_keys), définir quels sont les index désignant une relation et ceux désignant des index définis comme index par moi-même. Or je veux récupérer juste les index définis comme tels à la création de la table. Comment les différencier ? Merci d'avance,
Via :)
"Via" a écrit dans le message de news:
Bonsoir à tous !
Après de multiples essais, j'en arrive à ce code-ci :
Set Cmd = New ADODB.Command Set Cmd.ActiveConnection = Connection_SQL_Server Cmd.CommandText = "sp_helpindex" Cmd.CommandType = adCmdStoredProc Cmd.Parameters.Append Cmd.CreateParameter("objname", adVarChar, adParamInput, 776, Table)
For Each Fld In RsTableADO.Fields ReDim Preserve TableauIndex(a) TableauIndex(a).Champs = RsTableADO!index_name TableauIndex(a).Type = IIf(InStr(1, RsTableADO!index_description, "unique") <> 0, True, False)
a = a + 1
Next
Or, en exécutant sp_helpindex dans une vue sous SQL Server, j'ai en
retour
ceci :
index_name | index_description | index_keys
{4045B1B4-CDEF-4775-B4C6-FA637B04C6EB} | nonclustered located on PRIMARY
|
RefTypeSpec {9732EC7A-4EE6-4A76-8C51-2DFA4EB6FEF7} | nonclustered located on PRIMARY RefCatTest aaaaaTabPFTests_PK | nonclustered, unique, primary key located on PRIMARY
|
CodeTest NumTexte | nonclustered located on PRIMARY | NumTexte TestAm | nonclustered, unique located on PRIMARY | TestAm TestFr | nonclustered, unique located on PRIMARY | TestFr
Or que retrouvè-je dans mon TableauIndex après mon code ? Les trois premières lignes de mon RsTableADO !!!! Alors qu'à la fin mon but est justement d'éviter celles-ci qui ne m'intéressent pas. Je ne comprends pas... si quelqu'un peut m'aider en plongeant un peu
dans
le code (désolé pour l'absence de commentaires), j'en serais heureux parce que je pète un câble ! :) Bonne année à tous,
Via :)
Une erreur stupide... c'est le For Each Fld In... qui n'est pas bon. Je
veux le nombre d'enregistrements, et non le nombre de champs. Le seul
problème est que je n'ai accès ni au RecordCount ni au BOF (je ne sais pas
pourquoi d'ailleurs, mais bon)
J'ai donc remplacé ça par une boucle Do While 1, et je sors de la boucle
quand j'ai une erreur 3021.
Je récupère donc bien tous les index, y compris ceux définis par le système
(ceux avec des noms entre {} et celui avec aaaa au début) En fait, ils sont
définis sur des relations entre tables, et ils ne m'intéressent pas.
Simplement je ne sais pas, avec les infos dont je dispose (index_name,
index_description, index_keys), définir quels sont les index désignant une
relation et ceux désignant des index définis comme index par moi-même. Or je
veux récupérer juste les index définis comme tels à la création de la table.
Comment les différencier ?
Merci d'avance,
Via :)
"Via" <chew.baka@caramail.com> a écrit dans le message de
news:ufbxH87zDHA.1680@TK2MSFTNGP12.phx.gbl...
Bonsoir à tous !
Après de multiples essais, j'en arrive à ce code-ci :
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = Connection_SQL_Server
Cmd.CommandText = "sp_helpindex"
Cmd.CommandType = adCmdStoredProc
Cmd.Parameters.Append Cmd.CreateParameter("objname",
adVarChar, adParamInput, 776, Table)
For Each Fld In RsTableADO.Fields
ReDim Preserve TableauIndex(a)
TableauIndex(a).Champs = RsTableADO!index_name
TableauIndex(a).Type = IIf(InStr(1,
RsTableADO!index_description, "unique") <> 0, True, False)
a = a + 1
Next
Or, en exécutant sp_helpindex dans une vue sous SQL Server, j'ai en
retour
ceci :
index_name | index_description | index_keys
{4045B1B4-CDEF-4775-B4C6-FA637B04C6EB} | nonclustered located on PRIMARY
|
RefTypeSpec
{9732EC7A-4EE6-4A76-8C51-2DFA4EB6FEF7} | nonclustered located on PRIMARY
RefCatTest
aaaaaTabPFTests_PK | nonclustered, unique, primary key located on PRIMARY
|
CodeTest
NumTexte | nonclustered located on PRIMARY | NumTexte
TestAm | nonclustered, unique located on PRIMARY | TestAm
TestFr | nonclustered, unique located on PRIMARY | TestFr
Or que retrouvè-je dans mon TableauIndex après mon code ? Les trois
premières lignes de mon RsTableADO !!!! Alors qu'à la fin mon but est
justement d'éviter celles-ci qui ne m'intéressent pas.
Je ne comprends pas... si quelqu'un peut m'aider en plongeant un peu
dans
le code (désolé pour l'absence de commentaires), j'en serais heureux parce
que je pète un câble ! :)
Bonne année à tous,
Une erreur stupide... c'est le For Each Fld In... qui n'est pas bon. Je veux le nombre d'enregistrements, et non le nombre de champs. Le seul problème est que je n'ai accès ni au RecordCount ni au BOF (je ne sais pas pourquoi d'ailleurs, mais bon) J'ai donc remplacé ça par une boucle Do While 1, et je sors de la boucle quand j'ai une erreur 3021.
Je récupère donc bien tous les index, y compris ceux définis par le système (ceux avec des noms entre {} et celui avec aaaa au début) En fait, ils sont définis sur des relations entre tables, et ils ne m'intéressent pas. Simplement je ne sais pas, avec les infos dont je dispose (index_name, index_description, index_keys), définir quels sont les index désignant une relation et ceux désignant des index définis comme index par moi-même. Or je veux récupérer juste les index définis comme tels à la création de la table. Comment les différencier ? Merci d'avance,
Via :)
"Via" a écrit dans le message de news:
Bonsoir à tous !
Après de multiples essais, j'en arrive à ce code-ci :
Set Cmd = New ADODB.Command Set Cmd.ActiveConnection = Connection_SQL_Server Cmd.CommandText = "sp_helpindex" Cmd.CommandType = adCmdStoredProc Cmd.Parameters.Append Cmd.CreateParameter("objname", adVarChar, adParamInput, 776, Table)
For Each Fld In RsTableADO.Fields ReDim Preserve TableauIndex(a) TableauIndex(a).Champs = RsTableADO!index_name TableauIndex(a).Type = IIf(InStr(1, RsTableADO!index_description, "unique") <> 0, True, False)
a = a + 1
Next
Or, en exécutant sp_helpindex dans une vue sous SQL Server, j'ai en
retour
ceci :
index_name | index_description | index_keys
{4045B1B4-CDEF-4775-B4C6-FA637B04C6EB} | nonclustered located on PRIMARY
|
RefTypeSpec {9732EC7A-4EE6-4A76-8C51-2DFA4EB6FEF7} | nonclustered located on PRIMARY RefCatTest aaaaaTabPFTests_PK | nonclustered, unique, primary key located on PRIMARY
|
CodeTest NumTexte | nonclustered located on PRIMARY | NumTexte TestAm | nonclustered, unique located on PRIMARY | TestAm TestFr | nonclustered, unique located on PRIMARY | TestFr
Or que retrouvè-je dans mon TableauIndex après mon code ? Les trois premières lignes de mon RsTableADO !!!! Alors qu'à la fin mon but est justement d'éviter celles-ci qui ne m'intéressent pas. Je ne comprends pas... si quelqu'un peut m'aider en plongeant un peu
dans
le code (désolé pour l'absence de commentaires), j'en serais heureux parce que je pète un câble ! :) Bonne année à tous,