PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → exécution de procédures SQL à partir de WEBDEV
exécution de procédures SQL à partir de WEBDEV
Iniciado por nelly, set., 30 2004 1:25 PM - 3 respostas
Publicado em setembro, 30 2004 - 1:25 PM
Nos données sont sur 2 bases SQL Server

Cette vue est créée dans BD2:

create view dbo.Vue_Tams
as
select * from opendatasource('SQLOLEDB','Data Source=Server1;User ID=Accueil_Cnx;Password=Accueil_Cnx').BD1.dbo.tams

La requête suivante concerne la BD2 et fonctionne à partir de WEBDEV (mais ne nous satisfait pas)
ps_AgentSel
select * from AGENT A
join AGENT_TAMS TA on TA.AGTCLE = A.AGTCLE
join TAMS T on TA.TAMCLE = T.TAMCLE
join BD1..TAMS V on V.TAMCLE = T.TAMCLE

Nous voudrions utiliser la vue comme suivant:

select * from AGENT A
join AGENT_TAMS TA on TA.AGTCLE = A.AGTCLE
join TAMS T on TA.TAMCLE = T.TAMCLE
join Vue_TAMS V on V.TAMCLE = T.TAMCLE

Mais elle ne fonctionne pas à partir de WEBDEV

Voici le code WEBDEV:
NumConnexion = SQLConnecte(serveur, user, passe,BD2, "SQL SERVER", "Trusted_Connection=YES")
SI NumConnexion<>0 ALORS
ResExec = SQLExec("ps_AgentSEL ","REQ")

Quelqu'un a t-il une idée ?
Merci !
Publicado em setembro, 30 2004 - 3:42 PM
nelly avait soumis l'idée :
Nos données sont sur 2 bases SQL Server

Cette vue est créée dans BD2:

create view dbo.Vue_Tams
as
select * from opendatasource('SQLOLEDB','Data Source=Server1;User
ID=Accueil_Cnx;Password=Accueil_Cnx').BD1.dbo.tams

La requête suivante concerne la BD2 et fonctionne à partir de WEBDEV (mais ne
nous satisfait pas) ps_AgentSel
select * from AGENT A
join AGENT_TAMS TA on TA.AGTCLE = A.AGTCLE
join TAMS T on TA.TAMCLE = T.TAMCLE
join BD1..TAMS V on V.TAMCLE = T.TAMCLE

Nous voudrions utiliser la vue comme suivant:

select * from AGENT A
join AGENT_TAMS TA on TA.AGTCLE = A.AGTCLE
join TAMS T on TA.TAMCLE = T.TAMCLE
join Vue_TAMS V on V.TAMCLE = T.TAMCLE

Mais elle ne fonctionne pas à partir de WEBDEV

Voici le code WEBDEV:
NumConnexion = SQLConnecte(serveur, user, passe,BD2, "SQL SERVER",
"Trusted_Connection=YES") SI NumConnexion<>0 ALORS
ResExec = SQLExec("ps_AgentSEL ","REQ")

Quelqu'un a t-il une idée ?

pas spécialiste SQLServer (mysql, oracle only) mais si ta requete fn
avec un frontal sql server; pas de raison que cela ne marche pas;
sqlexec utilisant le code natif du sql.

Par contre , c'est quoi ce "ps_AgentSEL " ? Pourquoi entre guillemet ?
pourquoi un espace ?
A la place tu dois avoir soit toute ta requete entre guillemet "select
....from ...where ", soit une variable
commande="select * from AGENT A"+...
"join AGENT_TAMS TA on TA.AGTCLE = A.AGTCLE"+...
" join TAMS T on TA.TAMCLE = T.TAMCLE"+...
" join Vue_TAMS V on V.TAMCLE = T.TAMCLE"+...

ResExec = SQLExec(commande,"REQ")

Autre conseil : select * est une très très mauvaise habitude (on ne
sait pas l'ordre des colonnes, on prend trop de données inutilement)

> Merci !

--
Eric
Webmaster des Wtablettes
www.wtablettes.net
Publicado em setembro, 30 2004 - 6:02 PM
merci de ta réponse
le message n'était peut-être pas assez précis
ps_agentsel est la procédure stockée que nous lançons sous webdev
select * était pour simplifier le message
le pb est la jointure sur la vue qui attaque une autre base
Publicado em setembro, 30 2004 - 6:58 PM
nelly a écrit :
merci de ta réponse
le message n'était peut-être pas assez précis
ps_agentsel est la procédure stockée que nous lançons sous webdev
select * était pour simplifier le message
le pb est la jointure sur la vue qui attaque une autre base


Ah alors sqlserver je ne sais pas MAIS ...
je n'ais jamais réussi à faire marcher cela avec l'accès natif Oracle
avec des datalinks !!!
Il me fallait faire des sqlchangeconnexion.

--
Eric
Webmaster des Wtablettes
www.wtablettes.net