Hello, je me permets de vous faire part d'un cheminement tortueux à
souhait, qui bien sur est le mien.
d'abord, je programme avec le vieux DAO et non pas avec le jeune et
fringuant ADO, et toc !!!
Dans une table, je dois faire des recherches par rapport à une colone.
Je me dis que se serait bien qu'il y est un index dessus, histoire que
cela soit plus rapide.
seulement voila, je ne veux pas que la base de données soit modifiée ne
serait ce que l'instant d'une recherche.
Puisque un recordset peut être considéré comme étant un tableau
contenant des valeurs (origine: table, requête etc..), je me dis que je
vais faire un index dans ce tableau. Stupeur, je ne peux avoir des index
que sur un recordset de type DbTableDef. De plus, si je veux créer des
index à moi, je ne peux pas les mettre sur mon recordset, mais sur la
table qui lui est associée. Puis après j'indique dans le recordset,
l'index que je souhaite utiliser.
comme ma table est liée sur ma base de donnée, l'index que je créer dans
ma table est créer aussi dans ma base de donnée.
Voici le code que j'ai écris dans ce grand moment de délire....
Option Explicit
Dim rc_cp As Dao.Recordset
Dim idx_cp As Dao.Index
Dim table_cp As Dao.TableDef
Dim f As New Dao.Field
f.Name = "CAP_NUM"
Set table_cp = db.TableDefs("CP")
Set idx_cp = table_cp.CreateIndex("Index_Cap_num")
idx_cp.Fields.Append f
table_cp.Indexes.Append idx_cp
Set rc_cp = table_cp.OpenRecordset(dbOpenTable)
rc_cp.Index = "Index_Cap_num"
A priori cela fonctionne et je peux faire des SEEK sur mon recordset
rc_cp.
Toutefois cela me semble assez tordu,
un index est créé dans ma base de données
et au départ je voulais simplement trier un recordset qui soit déconecté
de la base
Si vous aves des exemples de création d'index sur les recordset merci
d'avance :)
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
Himselff
bonjour Thierry,
Par simple hazard n'aurait tu pas creer une clef primaire dans la table de ta base, ce qui a mon humble avis reviendrais a faire un index de ton recordset et qui ne modifirait pas ta base parceque elle serait deja dedans et qui te donnerais une recherche beaucoup plus performante au bout du compte lors de mise a jour !
Bonne Chance !
Fred "thierry" wrote in message news:
Hello, je me permets de vous faire part d'un cheminement tortueux à souhait, qui bien sur est le mien.
d'abord, je programme avec le vieux DAO et non pas avec le jeune et fringuant ADO, et toc !!!
Dans une table, je dois faire des recherches par rapport à une colone. Je me dis que se serait bien qu'il y est un index dessus, histoire que cela soit plus rapide.
seulement voila, je ne veux pas que la base de données soit modifiée ne serait ce que l'instant d'une recherche.
Puisque un recordset peut être considéré comme étant un tableau contenant des valeurs (origine: table, requête etc..), je me dis que je vais faire un index dans ce tableau. Stupeur, je ne peux avoir des index que sur un recordset de type DbTableDef. De plus, si je veux créer des index à moi, je ne peux pas les mettre sur mon recordset, mais sur la table qui lui est associée. Puis après j'indique dans le recordset, l'index que je souhaite utiliser.
comme ma table est liée sur ma base de donnée, l'index que je créer dans ma table est créer aussi dans ma base de donnée.
Voici le code que j'ai écris dans ce grand moment de délire....
Option Explicit Dim rc_cp As Dao.Recordset Dim idx_cp As Dao.Index Dim table_cp As Dao.TableDef
Dim f As New Dao.Field f.Name = "CAP_NUM"
Set table_cp = db.TableDefs("CP")
Set idx_cp = table_cp.CreateIndex("Index_Cap_num") idx_cp.Fields.Append f
table_cp.Indexes.Append idx_cp
Set rc_cp = table_cp.OpenRecordset(dbOpenTable) rc_cp.Index = "Index_Cap_num"
A priori cela fonctionne et je peux faire des SEEK sur mon recordset rc_cp.
Toutefois cela me semble assez tordu, un index est créé dans ma base de données et au départ je voulais simplement trier un recordset qui soit déconecté de la base
Si vous aves des exemples de création d'index sur les recordset merci d'avance :)
bonjour Thierry,
Par simple hazard n'aurait tu pas creer une clef primaire dans la table de
ta base, ce qui a mon humble avis reviendrais a faire un index de ton
recordset et qui ne modifirait pas ta base parceque elle serait deja dedans
et qui te donnerais une recherche beaucoup plus performante au bout du
compte lors de mise a jour !
Bonne Chance !
Fred
"thierry" <thierry.savry@laposte.net> wrote in message
news:GFr.1b1ee5188282bb9798968b@news.avantage.oleane.com...
Hello, je me permets de vous faire part d'un cheminement tortueux à
souhait, qui bien sur est le mien.
d'abord, je programme avec le vieux DAO et non pas avec le jeune et
fringuant ADO, et toc !!!
Dans une table, je dois faire des recherches par rapport à une colone.
Je me dis que se serait bien qu'il y est un index dessus, histoire que
cela soit plus rapide.
seulement voila, je ne veux pas que la base de données soit modifiée ne
serait ce que l'instant d'une recherche.
Puisque un recordset peut être considéré comme étant un tableau
contenant des valeurs (origine: table, requête etc..), je me dis que je
vais faire un index dans ce tableau. Stupeur, je ne peux avoir des index
que sur un recordset de type DbTableDef. De plus, si je veux créer des
index à moi, je ne peux pas les mettre sur mon recordset, mais sur la
table qui lui est associée. Puis après j'indique dans le recordset,
l'index que je souhaite utiliser.
comme ma table est liée sur ma base de donnée, l'index que je créer dans
ma table est créer aussi dans ma base de donnée.
Voici le code que j'ai écris dans ce grand moment de délire....
Option Explicit
Dim rc_cp As Dao.Recordset
Dim idx_cp As Dao.Index
Dim table_cp As Dao.TableDef
Dim f As New Dao.Field
f.Name = "CAP_NUM"
Set table_cp = db.TableDefs("CP")
Set idx_cp = table_cp.CreateIndex("Index_Cap_num")
idx_cp.Fields.Append f
table_cp.Indexes.Append idx_cp
Set rc_cp = table_cp.OpenRecordset(dbOpenTable)
rc_cp.Index = "Index_Cap_num"
A priori cela fonctionne et je peux faire des SEEK sur mon recordset
rc_cp.
Toutefois cela me semble assez tordu,
un index est créé dans ma base de données
et au départ je voulais simplement trier un recordset qui soit déconecté
de la base
Si vous aves des exemples de création d'index sur les recordset merci
d'avance :)
Par simple hazard n'aurait tu pas creer une clef primaire dans la table de ta base, ce qui a mon humble avis reviendrais a faire un index de ton recordset et qui ne modifirait pas ta base parceque elle serait deja dedans et qui te donnerais une recherche beaucoup plus performante au bout du compte lors de mise a jour !
Bonne Chance !
Fred "thierry" wrote in message news:
Hello, je me permets de vous faire part d'un cheminement tortueux à souhait, qui bien sur est le mien.
d'abord, je programme avec le vieux DAO et non pas avec le jeune et fringuant ADO, et toc !!!
Dans une table, je dois faire des recherches par rapport à une colone. Je me dis que se serait bien qu'il y est un index dessus, histoire que cela soit plus rapide.
seulement voila, je ne veux pas que la base de données soit modifiée ne serait ce que l'instant d'une recherche.
Puisque un recordset peut être considéré comme étant un tableau contenant des valeurs (origine: table, requête etc..), je me dis que je vais faire un index dans ce tableau. Stupeur, je ne peux avoir des index que sur un recordset de type DbTableDef. De plus, si je veux créer des index à moi, je ne peux pas les mettre sur mon recordset, mais sur la table qui lui est associée. Puis après j'indique dans le recordset, l'index que je souhaite utiliser.
comme ma table est liée sur ma base de donnée, l'index que je créer dans ma table est créer aussi dans ma base de donnée.
Voici le code que j'ai écris dans ce grand moment de délire....
Option Explicit Dim rc_cp As Dao.Recordset Dim idx_cp As Dao.Index Dim table_cp As Dao.TableDef
Dim f As New Dao.Field f.Name = "CAP_NUM"
Set table_cp = db.TableDefs("CP")
Set idx_cp = table_cp.CreateIndex("Index_Cap_num") idx_cp.Fields.Append f
table_cp.Indexes.Append idx_cp
Set rc_cp = table_cp.OpenRecordset(dbOpenTable) rc_cp.Index = "Index_Cap_num"
A priori cela fonctionne et je peux faire des SEEK sur mon recordset rc_cp.
Toutefois cela me semble assez tordu, un index est créé dans ma base de données et au départ je voulais simplement trier un recordset qui soit déconecté de la base
Si vous aves des exemples de création d'index sur les recordset merci d'avance :)
thierry
In article <%xptc.49829$, says...
bonjour Thierry,
Par simple hazard n'aurait tu pas creer une clef primaire dans la table de ta base, ce qui a mon humble avis reviendrais a faire un index de ton recordset et qui ne modifirait pas ta base parceque elle serait deja dedans et qui te donnerais une recherche beaucoup plus performante au bout du compte lors de mise a jour !
Bonne Chance !
Fred "thierry" wrote in message news: > > > Hello, je me permets de vous faire part d'un cheminement tortueux à > souhait, qui bien sur est le mien. > > d'abord, je programme avec le vieux DAO et non pas avec le jeune et > fringuant ADO, et toc !!! > > Dans une table, je dois faire des recherches par rapport à une colone. > Je me dis que se serait bien qu'il y est un index dessus, histoire que > cela soit plus rapide. > > seulement voila, je ne veux pas que la base de données soit modifiée ne > serait ce que l'instant d'une recherche.
je peux effectivement tablé sur cette opportunité, mais cela ne résouds pas le problème en général. en fait, la vrai question c'est comment faire des recherches rapide dans un recordset qui ne soit pas du type table? j'ai fait des essais avec un critere, mais cela est assez long, et comme je fais 5000 recherches de suite...
Cordialement
Thierry
> > Puisque un recordset peut être considéré comme étant un tableau > contenant des valeurs (origine: table, requête etc..), je me dis que je > vais faire un index dans ce tableau. Stupeur, je ne peux avoir des index > que sur un recordset de type DbTableDef. De plus, si je veux créer des > index à moi, je ne peux pas les mettre sur mon recordset, mais sur la > table qui lui est associée. Puis après j'indique dans le recordset, > l'index que je souhaite utiliser. > > comme ma table est liée sur ma base de donnée, l'index que je créer dans > ma table est créer aussi dans ma base de donnée. > > Voici le code que j'ai écris dans ce grand moment de délire.... > > Option Explicit > Dim rc_cp As Dao.Recordset > Dim idx_cp As Dao.Index > Dim table_cp As Dao.TableDef > > Dim f As New Dao.Field > f.Name = "CAP_NUM" >
In article <%xptc.49829$tb4.1735636@news20.bellglobal.com>,
info@antispam.dmsinc.ca says...
bonjour Thierry,
Par simple hazard n'aurait tu pas creer une clef primaire dans la table de
ta base, ce qui a mon humble avis reviendrais a faire un index de ton
recordset et qui ne modifirait pas ta base parceque elle serait deja dedans
et qui te donnerais une recherche beaucoup plus performante au bout du
compte lors de mise a jour !
Bonne Chance !
Fred
"thierry" <thierry.savry@laposte.net> wrote in message
news:GFr.1b1ee5188282bb9798968b@news.avantage.oleane.com...
>
>
> Hello, je me permets de vous faire part d'un cheminement tortueux à
> souhait, qui bien sur est le mien.
>
> d'abord, je programme avec le vieux DAO et non pas avec le jeune et
> fringuant ADO, et toc !!!
>
> Dans une table, je dois faire des recherches par rapport à une colone.
> Je me dis que se serait bien qu'il y est un index dessus, histoire que
> cela soit plus rapide.
>
> seulement voila, je ne veux pas que la base de données soit modifiée ne
> serait ce que l'instant d'une recherche.
je peux effectivement tablé sur cette opportunité, mais cela ne résouds
pas le problème en général.
en fait, la vrai question c'est comment faire des recherches rapide dans
un recordset qui ne soit pas du type table?
j'ai fait des essais avec un critere, mais cela est assez long, et comme
je fais 5000 recherches de suite...
Cordialement
Thierry
>
> Puisque un recordset peut être considéré comme étant un tableau
> contenant des valeurs (origine: table, requête etc..), je me dis que je
> vais faire un index dans ce tableau. Stupeur, je ne peux avoir des index
> que sur un recordset de type DbTableDef. De plus, si je veux créer des
> index à moi, je ne peux pas les mettre sur mon recordset, mais sur la
> table qui lui est associée. Puis après j'indique dans le recordset,
> l'index que je souhaite utiliser.
>
> comme ma table est liée sur ma base de donnée, l'index que je créer dans
> ma table est créer aussi dans ma base de donnée.
>
> Voici le code que j'ai écris dans ce grand moment de délire....
>
> Option Explicit
> Dim rc_cp As Dao.Recordset
> Dim idx_cp As Dao.Index
> Dim table_cp As Dao.TableDef
>
> Dim f As New Dao.Field
> f.Name = "CAP_NUM"
>
Par simple hazard n'aurait tu pas creer une clef primaire dans la table de ta base, ce qui a mon humble avis reviendrais a faire un index de ton recordset et qui ne modifirait pas ta base parceque elle serait deja dedans et qui te donnerais une recherche beaucoup plus performante au bout du compte lors de mise a jour !
Bonne Chance !
Fred "thierry" wrote in message news: > > > Hello, je me permets de vous faire part d'un cheminement tortueux à > souhait, qui bien sur est le mien. > > d'abord, je programme avec le vieux DAO et non pas avec le jeune et > fringuant ADO, et toc !!! > > Dans une table, je dois faire des recherches par rapport à une colone. > Je me dis que se serait bien qu'il y est un index dessus, histoire que > cela soit plus rapide. > > seulement voila, je ne veux pas que la base de données soit modifiée ne > serait ce que l'instant d'une recherche.
je peux effectivement tablé sur cette opportunité, mais cela ne résouds pas le problème en général. en fait, la vrai question c'est comment faire des recherches rapide dans un recordset qui ne soit pas du type table? j'ai fait des essais avec un critere, mais cela est assez long, et comme je fais 5000 recherches de suite...
Cordialement
Thierry
> > Puisque un recordset peut être considéré comme étant un tableau > contenant des valeurs (origine: table, requête etc..), je me dis que je > vais faire un index dans ce tableau. Stupeur, je ne peux avoir des index > que sur un recordset de type DbTableDef. De plus, si je veux créer des > index à moi, je ne peux pas les mettre sur mon recordset, mais sur la > table qui lui est associée. Puis après j'indique dans le recordset, > l'index que je souhaite utiliser. > > comme ma table est liée sur ma base de donnée, l'index que je créer dans > ma table est créer aussi dans ma base de donnée. > > Voici le code que j'ai écris dans ce grand moment de délire.... > > Option Explicit > Dim rc_cp As Dao.Recordset > Dim idx_cp As Dao.Index > Dim table_cp As Dao.TableDef > > Dim f As New Dao.Field > f.Name = "CAP_NUM" >
Himselff
Pour augmenter la rapiditer des recherches il n y a pas 36 solutions, le but est de minimiser le record set avec les closes "where" et les triers avec "order" le where te sort exactement tout les enregistrements necessaires par exemple :
select * from clients where sexe=M
qui te sortirais tout les hommes de la table clients, donc tu peux entree plusieur critere sa depend vraiment de ce que tu as besoins , tu pourrais avoir qque chose comme :
select sexe,age from clients where sexe=M and age>30
Bonne chance !
Fred
"thierry" wrote in message news:
In article <%xptc.49829$, says... > bonjour Thierry, > > Par simple hazard n'aurait tu pas creer une clef primaire dans la table
de
> ta base, ce qui a mon humble avis reviendrais a faire un index de ton > recordset et qui ne modifirait pas ta base parceque elle serait deja
dedans
> et qui te donnerais une recherche beaucoup plus performante au bout du > compte lors de mise a jour ! > > > Bonne Chance ! > > Fred > "thierry" wrote in message > news: > > > > > > Hello, je me permets de vous faire part d'un cheminement tortueux à > > souhait, qui bien sur est le mien. > > > > d'abord, je programme avec le vieux DAO et non pas avec le jeune et > > fringuant ADO, et toc !!! > > > > Dans une table, je dois faire des recherches par rapport à une colone. > > Je me dis que se serait bien qu'il y est un index dessus, histoire que > > cela soit plus rapide. > > > > seulement voila, je ne veux pas que la base de données soit modifiée
ne
> > serait ce que l'instant d'une recherche. je peux effectivement tablé sur cette opportunité, mais cela ne résouds pas le problème en général. en fait, la vrai question c'est comment faire des recherches rapide dans un recordset qui ne soit pas du type table? j'ai fait des essais avec un critere, mais cela est assez long, et comme je fais 5000 recherches de suite...
Cordialement
Thierry
> > > > Puisque un recordset peut être considéré comme étant un tableau > > contenant des valeurs (origine: table, requête etc..), je me dis que
je
> > vais faire un index dans ce tableau. Stupeur, je ne peux avoir des
index
> > que sur un recordset de type DbTableDef. De plus, si je veux créer des > > index à moi, je ne peux pas les mettre sur mon recordset, mais sur la > > table qui lui est associée. Puis après j'indique dans le recordset, > > l'index que je souhaite utiliser. > > > > comme ma table est liée sur ma base de donnée, l'index que je créer
dans
> > ma table est créer aussi dans ma base de donnée. > > > > Voici le code que j'ai écris dans ce grand moment de délire.... > > > > Option Explicit > > Dim rc_cp As Dao.Recordset > > Dim idx_cp As Dao.Index > > Dim table_cp As Dao.TableDef > > > > Dim f As New Dao.Field > > f.Name = "CAP_NUM" > >
Pour augmenter la rapiditer des recherches il n y a pas 36 solutions, le but
est de minimiser le record set avec les closes "where" et les triers avec
"order"
le where te sort exactement tout les enregistrements necessaires par exemple
:
select * from clients where sexe=M
qui te sortirais tout les hommes de la table clients, donc tu peux entree
plusieur critere sa depend vraiment de ce que tu as besoins , tu pourrais
avoir qque chose comme :
select sexe,age from clients where sexe=M and age>30
Bonne chance !
Fred
"thierry" <thierry.savry@laposte.net> wrote in message
news:GFr.1b20fd82c0eebf24989693@news.avantage.oleane.com...
In article <%xptc.49829$tb4.1735636@news20.bellglobal.com>,
info@antispam.dmsinc.ca says...
> bonjour Thierry,
>
> Par simple hazard n'aurait tu pas creer une clef primaire dans la table
de
> ta base, ce qui a mon humble avis reviendrais a faire un index de ton
> recordset et qui ne modifirait pas ta base parceque elle serait deja
dedans
> et qui te donnerais une recherche beaucoup plus performante au bout du
> compte lors de mise a jour !
>
>
> Bonne Chance !
>
> Fred
> "thierry" <thierry.savry@laposte.net> wrote in message
> news:GFr.1b1ee5188282bb9798968b@news.avantage.oleane.com...
> >
> >
> > Hello, je me permets de vous faire part d'un cheminement tortueux à
> > souhait, qui bien sur est le mien.
> >
> > d'abord, je programme avec le vieux DAO et non pas avec le jeune et
> > fringuant ADO, et toc !!!
> >
> > Dans une table, je dois faire des recherches par rapport à une colone.
> > Je me dis que se serait bien qu'il y est un index dessus, histoire que
> > cela soit plus rapide.
> >
> > seulement voila, je ne veux pas que la base de données soit modifiée
ne
> > serait ce que l'instant d'une recherche.
je peux effectivement tablé sur cette opportunité, mais cela ne résouds
pas le problème en général.
en fait, la vrai question c'est comment faire des recherches rapide dans
un recordset qui ne soit pas du type table?
j'ai fait des essais avec un critere, mais cela est assez long, et comme
je fais 5000 recherches de suite...
Cordialement
Thierry
> >
> > Puisque un recordset peut être considéré comme étant un tableau
> > contenant des valeurs (origine: table, requête etc..), je me dis que
je
> > vais faire un index dans ce tableau. Stupeur, je ne peux avoir des
index
> > que sur un recordset de type DbTableDef. De plus, si je veux créer des
> > index à moi, je ne peux pas les mettre sur mon recordset, mais sur la
> > table qui lui est associée. Puis après j'indique dans le recordset,
> > l'index que je souhaite utiliser.
> >
> > comme ma table est liée sur ma base de donnée, l'index que je créer
dans
> > ma table est créer aussi dans ma base de donnée.
> >
> > Voici le code que j'ai écris dans ce grand moment de délire....
> >
> > Option Explicit
> > Dim rc_cp As Dao.Recordset
> > Dim idx_cp As Dao.Index
> > Dim table_cp As Dao.TableDef
> >
> > Dim f As New Dao.Field
> > f.Name = "CAP_NUM"
> >
Pour augmenter la rapiditer des recherches il n y a pas 36 solutions, le but est de minimiser le record set avec les closes "where" et les triers avec "order" le where te sort exactement tout les enregistrements necessaires par exemple :
select * from clients where sexe=M
qui te sortirais tout les hommes de la table clients, donc tu peux entree plusieur critere sa depend vraiment de ce que tu as besoins , tu pourrais avoir qque chose comme :
select sexe,age from clients where sexe=M and age>30
Bonne chance !
Fred
"thierry" wrote in message news:
In article <%xptc.49829$, says... > bonjour Thierry, > > Par simple hazard n'aurait tu pas creer une clef primaire dans la table
de
> ta base, ce qui a mon humble avis reviendrais a faire un index de ton > recordset et qui ne modifirait pas ta base parceque elle serait deja
dedans
> et qui te donnerais une recherche beaucoup plus performante au bout du > compte lors de mise a jour ! > > > Bonne Chance ! > > Fred > "thierry" wrote in message > news: > > > > > > Hello, je me permets de vous faire part d'un cheminement tortueux à > > souhait, qui bien sur est le mien. > > > > d'abord, je programme avec le vieux DAO et non pas avec le jeune et > > fringuant ADO, et toc !!! > > > > Dans une table, je dois faire des recherches par rapport à une colone. > > Je me dis que se serait bien qu'il y est un index dessus, histoire que > > cela soit plus rapide. > > > > seulement voila, je ne veux pas que la base de données soit modifiée
ne
> > serait ce que l'instant d'une recherche. je peux effectivement tablé sur cette opportunité, mais cela ne résouds pas le problème en général. en fait, la vrai question c'est comment faire des recherches rapide dans un recordset qui ne soit pas du type table? j'ai fait des essais avec un critere, mais cela est assez long, et comme je fais 5000 recherches de suite...
Cordialement
Thierry
> > > > Puisque un recordset peut être considéré comme étant un tableau > > contenant des valeurs (origine: table, requête etc..), je me dis que
je
> > vais faire un index dans ce tableau. Stupeur, je ne peux avoir des
index
> > que sur un recordset de type DbTableDef. De plus, si je veux créer des > > index à moi, je ne peux pas les mettre sur mon recordset, mais sur la > > table qui lui est associée. Puis après j'indique dans le recordset, > > l'index que je souhaite utiliser. > > > > comme ma table est liée sur ma base de donnée, l'index que je créer
dans
> > ma table est créer aussi dans ma base de donnée. > > > > Voici le code que j'ai écris dans ce grand moment de délire.... > > > > Option Explicit > > Dim rc_cp As Dao.Recordset > > Dim idx_cp As Dao.Index > > Dim table_cp As Dao.TableDef > > > > Dim f As New Dao.Field > > f.Name = "CAP_NUM" > >