Je travaille avec MSDE et ADO (VB).
J'ai une table avec une clé primaire en numéro auto.
Comme la table contient enormément d'enregistrements, j'utilise à
l'ouverture pour ajouter un enregistrement un curseur côté serveur.
Après un addnew et le update correspondant, je ne peux pas récupérer la
valeur du nouveau numéro auto généré (lors de l'update et pas du addnew si
j'ai bien suivi...).
Par contre ça marche avec un curseur côté client.
Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette
information ?
Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter un
enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec un
curseur coté client...) ??!
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
Sylvain Lafontaine
Utilisez toujours de préférence un curseur côté client.
Si cela mouline pendant 2 heures, c'est fort probablement parce que vous avez des problèmes de choix de settings mais comme vous n'indiquez rien sur la procédure suivie, impossible d'en dire plus ici.
Selon le type de curseur sélectionné, son côté, la couche de travail (DAO ou ADO) et les options choisies; il est possible de retirer le numéro auto généré avant l'update, après l'update, après l'update mais avec un retour sur l'enregistrement (le curseur ayant changé de position après l'update) ou jamais.
Voici un court exemple; notez l'utilisation du WHERE 1=0 pour retourner un recordset vide:
Dans cet exemple, j'ai écrit un adOpenKeyset mais c'est probablement un oubli de ma part, les curseurs côté client étant statiques (façon de parler puisqu'il ne s'agit pas de la même chose que pour adOpenStatic) mais je n'ai pas le temps de vérifier.
S. L.
"Lapin" wrote in message news:eWicquL$
Bonsoir,
Je travaille avec MSDE et ADO (VB). J'ai une table avec une clé primaire en numéro auto.
Comme la table contient enormément d'enregistrements, j'utilise à l'ouverture pour ajouter un enregistrement un curseur côté serveur.
Après un addnew et le update correspondant, je ne peux pas récupérer la valeur du nouveau numéro auto généré (lors de l'update et pas du addnew si j'ai bien suivi...). Par contre ça marche avec un curseur côté client.
Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette information ? Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter un enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec un curseur coté client...) ??!
Merci de vos conseils !
Utilisez toujours de préférence un curseur côté client.
Si cela mouline pendant 2 heures, c'est fort probablement parce que vous
avez des problèmes de choix de settings mais comme vous n'indiquez rien sur
la procédure suivie, impossible d'en dire plus ici.
Selon le type de curseur sélectionné, son côté, la couche de travail (DAO ou
ADO) et les options choisies; il est possible de retirer le numéro auto
généré avant l'update, après l'update, après l'update mais avec un retour
sur l'enregistrement (le curseur ayant changé de position après l'update) ou
jamais.
Voici un court exemple; notez l'utilisation du WHERE 1=0 pour retourner un
recordset vide:
Dans cet exemple, j'ai écrit un adOpenKeyset mais c'est probablement un
oubli de ma part, les curseurs côté client étant statiques (façon de parler
puisqu'il ne s'agit pas de la même chose que pour adOpenStatic) mais je n'ai
pas le temps de vérifier.
S. L.
"Lapin" <nospam@nospam.org> wrote in message
news:eWicquL$DHA.4012@tk2msftngp13.phx.gbl...
Bonsoir,
Je travaille avec MSDE et ADO (VB).
J'ai une table avec une clé primaire en numéro auto.
Comme la table contient enormément d'enregistrements, j'utilise à
l'ouverture pour ajouter un enregistrement un curseur côté serveur.
Après un addnew et le update correspondant, je ne peux pas récupérer la
valeur du nouveau numéro auto généré (lors de l'update et pas du addnew si
j'ai bien suivi...).
Par contre ça marche avec un curseur côté client.
Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette
information ?
Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter un
enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec un
curseur coté client...) ??!
Utilisez toujours de préférence un curseur côté client.
Si cela mouline pendant 2 heures, c'est fort probablement parce que vous avez des problèmes de choix de settings mais comme vous n'indiquez rien sur la procédure suivie, impossible d'en dire plus ici.
Selon le type de curseur sélectionné, son côté, la couche de travail (DAO ou ADO) et les options choisies; il est possible de retirer le numéro auto généré avant l'update, après l'update, après l'update mais avec un retour sur l'enregistrement (le curseur ayant changé de position après l'update) ou jamais.
Voici un court exemple; notez l'utilisation du WHERE 1=0 pour retourner un recordset vide:
Dans cet exemple, j'ai écrit un adOpenKeyset mais c'est probablement un oubli de ma part, les curseurs côté client étant statiques (façon de parler puisqu'il ne s'agit pas de la même chose que pour adOpenStatic) mais je n'ai pas le temps de vérifier.
S. L.
"Lapin" wrote in message news:eWicquL$
Bonsoir,
Je travaille avec MSDE et ADO (VB). J'ai une table avec une clé primaire en numéro auto.
Comme la table contient enormément d'enregistrements, j'utilise à l'ouverture pour ajouter un enregistrement un curseur côté serveur.
Après un addnew et le update correspondant, je ne peux pas récupérer la valeur du nouveau numéro auto généré (lors de l'update et pas du addnew si j'ai bien suivi...). Par contre ça marche avec un curseur côté client.
Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette information ? Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter un enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec un curseur coté client...) ??!
Merci de vos conseils !
Lapin
Merci de votre réponse. En ce qui concerne les settings: J'ai une table de 500.000 enregistrements sur 20 champs environ. Je veux juste ajouter une ligne et récupérer le numauto généré. Si j'utilise rs.CursorLocationUseClient alors le code suivant fonctionne mais *l'ouverture* de la table prend plusieurs très longues secondes. Au contraire, c'est instantané avec un adUseServer, mais là, plus moyen de récupérer le numéro auto généré.
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a écrit dans le message de news:uzjJ$hP$
Utilisez toujours de préférence un curseur côté client.
Si cela mouline pendant 2 heures, c'est fort probablement parce que vous avez des problèmes de choix de settings mais comme vous n'indiquez rien
sur
la procédure suivie, impossible d'en dire plus ici.
Selon le type de curseur sélectionné, son côté, la couche de travail (DAO
ou
ADO) et les options choisies; il est possible de retirer le numéro auto généré avant l'update, après l'update, après l'update mais avec un retour sur l'enregistrement (le curseur ayant changé de position après l'update)
ou
jamais.
Voici un court exemple; notez l'utilisation du WHERE 1=0 pour retourner un recordset vide:
Dans cet exemple, j'ai écrit un adOpenKeyset mais c'est probablement un oubli de ma part, les curseurs côté client étant statiques (façon de
parler
puisqu'il ne s'agit pas de la même chose que pour adOpenStatic) mais je
n'ai
pas le temps de vérifier.
S. L.
"Lapin" wrote in message news:eWicquL$ > Bonsoir, > > Je travaille avec MSDE et ADO (VB). > J'ai une table avec une clé primaire en numéro auto. > > Comme la table contient enormément d'enregistrements, j'utilise à > l'ouverture pour ajouter un enregistrement un curseur côté serveur. > > Après un addnew et le update correspondant, je ne peux pas récupérer la > valeur du nouveau numéro auto généré (lors de l'update et pas du addnew
si
> j'ai bien suivi...). > Par contre ça marche avec un curseur côté client. > > Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette > information ? > Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter
un
> enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec
un
> curseur coté client...) ??! > > Merci de vos conseils ! > >
Merci de votre réponse.
En ce qui concerne les settings:
J'ai une table de 500.000 enregistrements sur 20 champs environ.
Je veux juste ajouter une ligne et récupérer le numauto généré.
Si j'utilise rs.CursorLocationUseClient alors le code suivant fonctionne
mais *l'ouverture* de la table prend plusieurs très longues secondes.
Au contraire, c'est instantané avec un adUseServer, mais là, plus moyen de
récupérer le numéro auto généré.
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:uzjJ$hP$DHA.3188@TK2MSFTNGP09.phx.gbl...
Utilisez toujours de préférence un curseur côté client.
Si cela mouline pendant 2 heures, c'est fort probablement parce que vous
avez des problèmes de choix de settings mais comme vous n'indiquez rien
sur
la procédure suivie, impossible d'en dire plus ici.
Selon le type de curseur sélectionné, son côté, la couche de travail (DAO
ou
ADO) et les options choisies; il est possible de retirer le numéro auto
généré avant l'update, après l'update, après l'update mais avec un retour
sur l'enregistrement (le curseur ayant changé de position après l'update)
ou
jamais.
Voici un court exemple; notez l'utilisation du WHERE 1=0 pour retourner un
recordset vide:
Dans cet exemple, j'ai écrit un adOpenKeyset mais c'est probablement un
oubli de ma part, les curseurs côté client étant statiques (façon de
parler
puisqu'il ne s'agit pas de la même chose que pour adOpenStatic) mais je
n'ai
pas le temps de vérifier.
S. L.
"Lapin" <nospam@nospam.org> wrote in message
news:eWicquL$DHA.4012@tk2msftngp13.phx.gbl...
> Bonsoir,
>
> Je travaille avec MSDE et ADO (VB).
> J'ai une table avec une clé primaire en numéro auto.
>
> Comme la table contient enormément d'enregistrements, j'utilise à
> l'ouverture pour ajouter un enregistrement un curseur côté serveur.
>
> Après un addnew et le update correspondant, je ne peux pas récupérer la
> valeur du nouveau numéro auto généré (lors de l'update et pas du addnew
si
> j'ai bien suivi...).
> Par contre ça marche avec un curseur côté client.
>
> Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette
> information ?
> Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter
un
> enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec
un
> curseur coté client...) ??!
>
> Merci de vos conseils !
>
>
Merci de votre réponse. En ce qui concerne les settings: J'ai une table de 500.000 enregistrements sur 20 champs environ. Je veux juste ajouter une ligne et récupérer le numauto généré. Si j'utilise rs.CursorLocationUseClient alors le code suivant fonctionne mais *l'ouverture* de la table prend plusieurs très longues secondes. Au contraire, c'est instantané avec un adUseServer, mais là, plus moyen de récupérer le numéro auto généré.
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a écrit dans le message de news:uzjJ$hP$
Utilisez toujours de préférence un curseur côté client.
Si cela mouline pendant 2 heures, c'est fort probablement parce que vous avez des problèmes de choix de settings mais comme vous n'indiquez rien
sur
la procédure suivie, impossible d'en dire plus ici.
Selon le type de curseur sélectionné, son côté, la couche de travail (DAO
ou
ADO) et les options choisies; il est possible de retirer le numéro auto généré avant l'update, après l'update, après l'update mais avec un retour sur l'enregistrement (le curseur ayant changé de position après l'update)
ou
jamais.
Voici un court exemple; notez l'utilisation du WHERE 1=0 pour retourner un recordset vide:
Dans cet exemple, j'ai écrit un adOpenKeyset mais c'est probablement un oubli de ma part, les curseurs côté client étant statiques (façon de
parler
puisqu'il ne s'agit pas de la même chose que pour adOpenStatic) mais je
n'ai
pas le temps de vérifier.
S. L.
"Lapin" wrote in message news:eWicquL$ > Bonsoir, > > Je travaille avec MSDE et ADO (VB). > J'ai une table avec une clé primaire en numéro auto. > > Comme la table contient enormément d'enregistrements, j'utilise à > l'ouverture pour ajouter un enregistrement un curseur côté serveur. > > Après un addnew et le update correspondant, je ne peux pas récupérer la > valeur du nouveau numéro auto généré (lors de l'update et pas du addnew
si
> j'ai bien suivi...). > Par contre ça marche avec un curseur côté client. > > Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette > information ? > Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter
un
> enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec
un
> curseur coté client...) ??! > > Merci de vos conseils ! > >
Lapin
Peut-on utiliser sans risque, pour faire un Addnew via ADO, votre méthode (qui fonctionne semble t'il parfaitement) qui consiste à ouvrir non pas en adCmdTabel mais avec un "SELECT * FROM Table1 WHERE Champ1=0" où Champ1 est la clé primaire avec un num_auto (donc jamais =0), le tout avec un curseur côté client ? Je veux dire par là, rien à savoir d'autre de particulier ?
Merci bien.
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a écrit dans le message de news:uzjJ$hP$
Utilisez toujours de préférence un curseur côté client.
Si cela mouline pendant 2 heures, c'est fort probablement parce que vous avez des problèmes de choix de settings mais comme vous n'indiquez rien
sur
la procédure suivie, impossible d'en dire plus ici.
Selon le type de curseur sélectionné, son côté, la couche de travail (DAO
ou
ADO) et les options choisies; il est possible de retirer le numéro auto généré avant l'update, après l'update, après l'update mais avec un retour sur l'enregistrement (le curseur ayant changé de position après l'update)
ou
jamais.
Voici un court exemple; notez l'utilisation du WHERE 1=0 pour retourner un recordset vide:
Dans cet exemple, j'ai écrit un adOpenKeyset mais c'est probablement un oubli de ma part, les curseurs côté client étant statiques (façon de
parler
puisqu'il ne s'agit pas de la même chose que pour adOpenStatic) mais je
n'ai
pas le temps de vérifier.
S. L.
"Lapin" wrote in message news:eWicquL$ > Bonsoir, > > Je travaille avec MSDE et ADO (VB). > J'ai une table avec une clé primaire en numéro auto. > > Comme la table contient enormément d'enregistrements, j'utilise à > l'ouverture pour ajouter un enregistrement un curseur côté serveur. > > Après un addnew et le update correspondant, je ne peux pas récupérer la > valeur du nouveau numéro auto généré (lors de l'update et pas du addnew
si
> j'ai bien suivi...). > Par contre ça marche avec un curseur côté client. > > Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette > information ? > Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter
un
> enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec
un
> curseur coté client...) ??! > > Merci de vos conseils ! > >
Peut-on utiliser sans risque, pour faire un Addnew via ADO, votre méthode
(qui fonctionne semble t'il parfaitement) qui consiste à ouvrir non pas en
adCmdTabel mais avec un "SELECT * FROM Table1 WHERE Champ1=0" où Champ1 est
la clé primaire avec un num_auto (donc jamais =0), le tout avec un curseur
côté client ?
Je veux dire par là, rien à savoir d'autre de particulier ?
Merci bien.
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:uzjJ$hP$DHA.3188@TK2MSFTNGP09.phx.gbl...
Utilisez toujours de préférence un curseur côté client.
Si cela mouline pendant 2 heures, c'est fort probablement parce que vous
avez des problèmes de choix de settings mais comme vous n'indiquez rien
sur
la procédure suivie, impossible d'en dire plus ici.
Selon le type de curseur sélectionné, son côté, la couche de travail (DAO
ou
ADO) et les options choisies; il est possible de retirer le numéro auto
généré avant l'update, après l'update, après l'update mais avec un retour
sur l'enregistrement (le curseur ayant changé de position après l'update)
ou
jamais.
Voici un court exemple; notez l'utilisation du WHERE 1=0 pour retourner un
recordset vide:
Dans cet exemple, j'ai écrit un adOpenKeyset mais c'est probablement un
oubli de ma part, les curseurs côté client étant statiques (façon de
parler
puisqu'il ne s'agit pas de la même chose que pour adOpenStatic) mais je
n'ai
pas le temps de vérifier.
S. L.
"Lapin" <nospam@nospam.org> wrote in message
news:eWicquL$DHA.4012@tk2msftngp13.phx.gbl...
> Bonsoir,
>
> Je travaille avec MSDE et ADO (VB).
> J'ai une table avec une clé primaire en numéro auto.
>
> Comme la table contient enormément d'enregistrements, j'utilise à
> l'ouverture pour ajouter un enregistrement un curseur côté serveur.
>
> Après un addnew et le update correspondant, je ne peux pas récupérer la
> valeur du nouveau numéro auto généré (lors de l'update et pas du addnew
si
> j'ai bien suivi...).
> Par contre ça marche avec un curseur côté client.
>
> Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette
> information ?
> Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter
un
> enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec
un
> curseur coté client...) ??!
>
> Merci de vos conseils !
>
>
Peut-on utiliser sans risque, pour faire un Addnew via ADO, votre méthode (qui fonctionne semble t'il parfaitement) qui consiste à ouvrir non pas en adCmdTabel mais avec un "SELECT * FROM Table1 WHERE Champ1=0" où Champ1 est la clé primaire avec un num_auto (donc jamais =0), le tout avec un curseur côté client ? Je veux dire par là, rien à savoir d'autre de particulier ?
Merci bien.
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a écrit dans le message de news:uzjJ$hP$
Utilisez toujours de préférence un curseur côté client.
Si cela mouline pendant 2 heures, c'est fort probablement parce que vous avez des problèmes de choix de settings mais comme vous n'indiquez rien
sur
la procédure suivie, impossible d'en dire plus ici.
Selon le type de curseur sélectionné, son côté, la couche de travail (DAO
ou
ADO) et les options choisies; il est possible de retirer le numéro auto généré avant l'update, après l'update, après l'update mais avec un retour sur l'enregistrement (le curseur ayant changé de position après l'update)
ou
jamais.
Voici un court exemple; notez l'utilisation du WHERE 1=0 pour retourner un recordset vide:
Dans cet exemple, j'ai écrit un adOpenKeyset mais c'est probablement un oubli de ma part, les curseurs côté client étant statiques (façon de
parler
puisqu'il ne s'agit pas de la même chose que pour adOpenStatic) mais je
n'ai
pas le temps de vérifier.
S. L.
"Lapin" wrote in message news:eWicquL$ > Bonsoir, > > Je travaille avec MSDE et ADO (VB). > J'ai une table avec une clé primaire en numéro auto. > > Comme la table contient enormément d'enregistrements, j'utilise à > l'ouverture pour ajouter un enregistrement un curseur côté serveur. > > Après un addnew et le update correspondant, je ne peux pas récupérer la > valeur du nouveau numéro auto généré (lors de l'update et pas du addnew
si
> j'ai bien suivi...). > Par contre ça marche avec un curseur côté client. > > Donc, y a t'il un poyen avec un curseur coté serveur de récupérer cette > information ? > Sinon, avec une table enorme, comment l'ouvrir pour simplement ajouter
un
> enregistrement sans que ça mouline pendant 2 heures (ce qui arrive avec
un
> curseur coté client...) ??! > > Merci de vos conseils ! > >