OVH Cloud OVH Cloud

Requete

5 réponses
Avatar
Informatique CARPIMKO
Bonjour,
je ne comprends pas pourquoi ma requete "insert into A (champa) select
champb from b" ne fonctionne pas sur access alors qu'elle passe bien sur sql
server. Ma connection à ma base de données sql server semble correct puisque
d'autres requetes s'executent sans probleme. Est-ce qu'il y a une uatre
facon de l'ecrire ou un autre moyen de l'executer ?
J'execute ma requete avec "Cnx.Execute TxtSQL, , adCmdText +
adExecuteNoRecords"
J'ai aussi essayé d'une autre manière mais sans succès:
With MaCommande
.ActiveConnection = Cnx
.CommandText = TxtSQL
.CommandType = adCmdText
.Prepared = True
.Execute , DB_SQLPASSTHROUGH
End With

Merci d'avance.

Yannick

5 réponses

Avatar
Fred M.
Salut Yannick.
Ton objectif est d'exporter des données d'SQl Server vers
Access c'est ça ?
Pour n'utilises-tu pas le DTS (Data transformation
Service) sous SQL server pour ton export ?

Fred M.

-----Message d'origine-----
Bonjour,
je ne comprends pas pourquoi ma requete "insert into A
(champa) select

champb from b" ne fonctionne pas sur access alors qu'elle
passe bien sur sql

server. Ma connection à ma base de données sql server
semble correct puisque

d'autres requetes s'executent sans probleme. Est-ce qu'il
y a une uatre

facon de l'ecrire ou un autre moyen de l'executer ?
J'execute ma requete avec "Cnx.Execute TxtSQL, ,
adCmdText +

adExecuteNoRecords"
J'ai aussi essayé d'une autre manière mais sans succès:
With MaCommande
.ActiveConnection = Cnx
.CommandText = TxtSQL
.CommandType = adCmdText
.Prepared = True
.Execute , DB_SQLPASSTHROUGH
End With

Merci d'avance.

Yannick


.



Avatar
Informatique CARPIMKO
Salut Fred,
ce n'est pas exactement ca. Mes traitements ne se font que sur ma base sql
server. De simples requêtes pourraient suffire mais cela doit être une
application access et j'ai des paramètres en entrée (une variable date dont
je me sers dans mes requêtes).
J'utilise le DTS pour importer dans ma base sql server des fichiers et cela
fonctionne très bien.

Yannick


Salut Yannick.
Ton objectif est d'exporter des données d'SQl Server vers
Access c'est ça ?
Pour n'utilises-tu pas le DTS (Data transformation
Service) sous SQL server pour ton export ?

Fred M.

-----Message d'origine-----
Bonjour,
je ne comprends pas pourquoi ma requete "insert into A
(champa) select

champb from b" ne fonctionne pas sur access alors qu'elle
passe bien sur sql

server. Ma connection à ma base de données sql server
semble correct puisque

d'autres requetes s'executent sans probleme. Est-ce qu'il
y a une uatre

facon de l'ecrire ou un autre moyen de l'executer ?
J'execute ma requete avec "Cnx.Execute TxtSQL, ,
adCmdText +

adExecuteNoRecords"
J'ai aussi essayé d'une autre manière mais sans succès:
With MaCommande
.ActiveConnection = Cnx
.CommandText = TxtSQL
.CommandType = adCmdText
.Prepared = True
.Execute , DB_SQLPASSTHROUGH
End With

Merci d'avance.

Yannick


Avatar
Fred M.
Re,
Ok je comprends un peu mieux.
Pour revenir alors à ta 1ere qstion, si si la syntaxe de
l'insert est identique. En revanche, si tu dis que tu
insères un paramètre via une variable, j'imagine que ta
variable TxtSQL est faite de concaténation.
N'aurais-tu pas par hasard (coup classique) oublié de
préciser dans cette concaténation ton symbole de date sur
ta variable ?
Si tel n'est pas le cas, montre moi voir un peu à quoi
elle ressemble ça pourrait m'aider..

-----Message d'origine-----
Salut Fred,
ce n'est pas exactement ca. Mes traitements ne se font
que sur ma base sql

server. De simples requêtes pourraient suffire mais cela
doit être une

application access et j'ai des paramètres en entrée (une
variable date dont

je me sers dans mes requêtes).
J'utilise le DTS pour importer dans ma base sql server
des fichiers et cela

fonctionne très bien.

Yannick


Salut Yannick.
Ton objectif est d'exporter des données d'SQl Server vers
Access c'est ça ?
Pour n'utilises-tu pas le DTS (Data transformation
Service) sous SQL server pour ton export ?

Fred M.

-----Message d'origine-----
Bonjour,
je ne comprends pas pourquoi ma requete "insert into A
(champa) select

champb from b" ne fonctionne pas sur access alors qu'elle
passe bien sur sql

server. Ma connection à ma base de données sql server
semble correct puisque

d'autres requetes s'executent sans probleme. Est-ce qu'il
y a une uatre

facon de l'ecrire ou un autre moyen de l'executer ?
J'execute ma requete avec "Cnx.Execute TxtSQL, ,
adCmdText +

adExecuteNoRecords"
J'ai aussi essayé d'une autre manière mais sans succès:
With MaCommande
.ActiveConnection = Cnx
.CommandText = TxtSQL
.CommandType = adCmdText
.Prepared = True
.Execute , DB_SQLPASSTHROUGH
End With

Merci d'avance.

Yannick



.




Avatar
Informatique CARPIMKO
Re
en fait sur cette première requête je n'ai pas de paramètres donc je
pourrais la faire passer dans un lot DTS mais comme j'ai un enchainement de
requetes, dont certaines avec une variable, je prefererais faire tout au
même endroit.
J'avais fait cet enchainement de requete dans un script php et tout se
passait très bien mais l'interface n'était pas satisfaisant et surtout
l'etat etait difficile à maintenir. Donc j'ai récupéré les requêtes pour les
executer dans access.
Ma première requete vide ma table A (delete from A), cela se passe très
bien.
Ensuite je veux recuperer tous les matricules d'une table B et les inserer
dans la table A. Je veux copier une colonne de B dans A, les autres champs
étant remplis dans les requêtes suivantes.
Donc la variable TxtSQL est exactement: insert into A (matricule) select
matricule from B
et dans sql server en 10 sec je recupere mes 200000 matricules.
Sous Access, cela ne répond plus et aucun matricule n'est mis dans la table
A.



Re,
Ok je comprends un peu mieux.
Pour revenir alors à ta 1ere qstion, si si la syntaxe de
l'insert est identique. En revanche, si tu dis que tu
insères un paramètre via une variable, j'imagine que ta
variable TxtSQL est faite de concaténation.
N'aurais-tu pas par hasard (coup classique) oublié de
préciser dans cette concaténation ton symbole de date sur
ta variable ?
Si tel n'est pas le cas, montre moi voir un peu à quoi
elle ressemble ça pourrait m'aider..

-----Message d'origine-----
Salut Fred,
ce n'est pas exactement ca. Mes traitements ne se font
que sur ma base sql

server. De simples requêtes pourraient suffire mais cela
doit être une

application access et j'ai des paramètres en entrée (une
variable date dont

je me sers dans mes requêtes).
J'utilise le DTS pour importer dans ma base sql server
des fichiers et cela

fonctionne très bien.

Yannick


Salut Yannick.
Ton objectif est d'exporter des données d'SQl Server vers
Access c'est ça ?
Pour n'utilises-tu pas le DTS (Data transformation
Service) sous SQL server pour ton export ?

Fred M.

-----Message d'origine-----
Bonjour,
je ne comprends pas pourquoi ma requete "insert into A
(champa) select

champb from b" ne fonctionne pas sur access alors qu'elle
passe bien sur sql

server. Ma connection à ma base de données sql server
semble correct puisque

d'autres requetes s'executent sans probleme. Est-ce qu'il
y a une uatre

facon de l'ecrire ou un autre moyen de l'executer ?
J'execute ma requete avec "Cnx.Execute TxtSQL, ,
adCmdText +

adExecuteNoRecords"
J'ai aussi essayé d'une autre manière mais sans succès:
With MaCommande
.ActiveConnection = Cnx
.CommandText = TxtSQL
.CommandType = adCmdText
.Prepared = True
.Execute , DB_SQLPASSTHROUGH
End With

Merci d'avance.

Yannick




Avatar
Daniel Carollo
Bonjour Yannick!

Avez-vous pense a verifier la propriete "timeout" de la connection? Avec une
quantite de traitements telle, il y a des chances que la commande echoue, et
qu'elle soit donc "rolled back".

Plutot que de vider la table avec un "DELETE FROM MaTable" essayez plutot un
"TRUNCATE TABLE MaTable", c'est beaucoup plus rapide. Le seul "inconvenient"
c'est qu'on ne peut pas l'utiliser s'il y a des relations d'integrite
referentielles, et les effacements ne sont pas "logges" individuellement,
mais pour effacer des tables intermediaires c'est tres efficace.

Finalement, pour ce qui est d'utiliser DTS, il est possible de mettre des
parametres, de faire des operations et tout un tas de choses dans DTS, qui
est en fait un espace programmable avec d'enormes possibilites. Ca vaut le
coup de se familiariser avec.

Bonne continuation,

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...


"Informatique CARPIMKO" wrote in message
news:3f7c17d9$0$13292$
Re
en fait sur cette première requête je n'ai pas de paramètres donc je
pourrais la faire passer dans un lot DTS mais comme j'ai un enchainement
de

requetes, dont certaines avec une variable, je prefererais faire tout au
même endroit.
J'avais fait cet enchainement de requete dans un script php et tout se
passait très bien mais l'interface n'était pas satisfaisant et surtout
l'etat etait difficile à maintenir. Donc j'ai récupéré les requêtes pour
les

executer dans access.
Ma première requete vide ma table A (delete from A), cela se passe très
bien.
Ensuite je veux recuperer tous les matricules d'une table B et les inserer
dans la table A. Je veux copier une colonne de B dans A, les autres champs
étant remplis dans les requêtes suivantes.
Donc la variable TxtSQL est exactement: insert into A (matricule) select
matricule from B
et dans sql server en 10 sec je recupere mes 200000 matricules.
Sous Access, cela ne répond plus et aucun matricule n'est mis dans la
table

A.



Re,
Ok je comprends un peu mieux.
Pour revenir alors à ta 1ere qstion, si si la syntaxe de
l'insert est identique. En revanche, si tu dis que tu
insères un paramètre via une variable, j'imagine que ta
variable TxtSQL est faite de concaténation.
N'aurais-tu pas par hasard (coup classique) oublié de
préciser dans cette concaténation ton symbole de date sur
ta variable ?
Si tel n'est pas le cas, montre moi voir un peu à quoi
elle ressemble ça pourrait m'aider..

-----Message d'origine-----
Salut Fred,
ce n'est pas exactement ca. Mes traitements ne se font
que sur ma base sql

server. De simples requêtes pourraient suffire mais cela
doit être une

application access et j'ai des paramètres en entrée (une
variable date dont

je me sers dans mes requêtes).
J'utilise le DTS pour importer dans ma base sql server
des fichiers et cela

fonctionne très bien.

Yannick


Salut Yannick.
Ton objectif est d'exporter des données d'SQl Server vers
Access c'est ça ?
Pour n'utilises-tu pas le DTS (Data transformation
Service) sous SQL server pour ton export ?

Fred M.

-----Message d'origine-----
Bonjour,
je ne comprends pas pourquoi ma requete "insert into A
(champa) select

champb from b" ne fonctionne pas sur access alors qu'elle
passe bien sur sql

server. Ma connection à ma base de données sql server
semble correct puisque

d'autres requetes s'executent sans probleme. Est-ce qu'il
y a une uatre

facon de l'ecrire ou un autre moyen de l'executer ?
J'execute ma requete avec "Cnx.Execute TxtSQL, ,
adCmdText +

adExecuteNoRecords"
J'ai aussi essayé d'une autre manière mais sans succès:
With MaCommande
.ActiveConnection = Cnx
.CommandText = TxtSQL
.CommandType = adCmdText
.Prepared = True
.Execute , DB_SQLPASSTHROUGH
End With

Merci d'avance.

Yannick