|
| Problème de requete sql sur vue |
| Iniciado por Paul SOULAT, 27,abr. 2020 14:20 - 11 respuestas |
| |
| | | |
|
| |
Miembro registrado 49 mensajes |
|
| Publicado el 27,abril 2020 - 14:20 |
Bonjour sur un projet on me demande de mettre à jour des données provenant d'un serveur sql on m'a fourni une requete par contre je n'arrive pas à l'exploiter car elle va apparemment sur des vues or je ne sais pas comment je peux accéder à ces vues
le code de la requete :
SELECT vue_tiers.tie_code AS Code_Client, vue_dirigeant.col_nom +' '+ vue_dirigeant.col_prenom AS Nom_Prenom_Dirigeant, vue_tiers.mag_raisoc AS Raison_Social, magasin.mag_denom_commer AS Denomination_Commercial, vue_tiers.mag_adresse AS Adresse, vue_tiers.mag_codepostal AS Code_Postal, vue_tiers.mag_ville AS Ville, vue_tiers.mag_telephone_1 AS Teplephone_1, vue_tiers.mag_telephone_2 AS Telephone_2, vue_tiers.mag_telephone_p AS Telephone_Portable, vue_tiers.mag_fax AS Fax, vue_tiers.mag_email AS Email, CASE WHEN not EXISTS( SELECT 1 FROM contrat WHERE contrat.tie_des_id = vue_tiers.tie_id ) THEN 'JAMAIS' WHEN EXISTS( SELECT 1 FROM contrat WHERE contrat.cont_statut = 2 AND contrat.tie_des_id = vue_tiers.tie_id ) THEN 'CONTRAT ACTIF' ELSE 'CONTRATS INACTIF' END AS statut, ( SELECT MAX( piece.pie_date ) FROM piece WHERE piece.tie_des_id = vue_tiers.tie_id AND piece.pie_type = 5 ) AS date_derniere_facture FROM vue_tiers, vue_dirigeant, magasin WHERE vue_tiers.tie_id = vue_dirigeant.tie_id AND vue_tiers.tie_publisher = vue_dirigeant.tie_publisher AND vue_tiers.tie_type_client = 1 AND vue_tiers.tie_code <> '50' AND magasin.mag_id = vue_tiers.mag_id AND magasin.mag_publisher = vue_tiers.mag_publisher AND omc_f_is_valide (magasin.mag_fin_validite, CURRENT timestamp) = 1 ORDER BY CAST ( ( CASE WHEN isnumeric( Code_Client ) = 1 THEN Code_Client ELSE 0 END ) AS INTEGER);
Pourriez-vous me dire comment je peux accéder aux vues, merci |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 28,abril 2020 - 08:46 |
Bonjour, Normalement la vue est sur le serveur, au même titre que les tables. Il est possible que tu n'ais pas les droits dessus. Vois avec le dba
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 28,abril 2020 - 12:54 |
Bonjour,
Soit tu importes la vue comme une table, soit tu fais un HExecuteRequeteSQL()
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 49 mensajes |
|
| Publicado el 29,abril 2020 - 18:20 |
Bonjour Voroltinquo,
J'ai vérifié j'ai bien les droits du coup il y a peut être un moyen de les importer que je n'ai pas fait? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 49 mensajes |
|
| Publicado el 29,abril 2020 - 18:23 |
Bonjour Philippe,
L'importer je n'y arrive pas je ne la vois pas dans les propositions d'import je ne vois que les tables
HExecuteRequeteSQL() j'ai essayé mais il me retourne une erreur quand je met la requête que j'ai mis plus haut
Je ne comprends pas trop du coup
Merci |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 29,abril 2020 - 22:03 |
Tu travailles avec quel SGBD ?
Quelle est l'erreur avec le HExceuteRequeteSQL ? Peux tu poster le code que l'on puisse t'aider un peu plus ?
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 49 mensajes |
|
| Publicado el 01,mayo 2020 - 08:44 |
Bonjour Philippe,
Le SGBD c'est sybase (sqlanywhere10)
Le code :
sRequete est une Requête SQL = [ SELECT vue_tiers.tie_code AS Code_Client, vue_dirigeant.col_nom +' '+ vue_dirigeant.col_prenom AS Nom_Prenom_Dirigeant, vue_tiers.mag_raisoc AS Raison_Social, magasin.mag_denom_commer AS Denomination_Commercial, vue_tiers.mag_adresse AS Adresse, vue_tiers.mag_codepostal AS Code_Postal, vue_tiers.mag_ville AS ville, vue_tiers.mag_telephone_1 AS Teplephone_1, vue_tiers.mag_telephone_2 AS Telephone_2, vue_tiers.mag_telephone_p AS Telephone_Portable, vue_tiers.mag_fax AS Fax, vue_tiers.mag_email AS Email, CASE WHEN NOT EXISTS( SELECT 1 FROM contrat WHERE contrat.tie_des_id = vue_tiers.tie_id ) THEN 'JAMAIS' WHEN EXISTS( SELECT 1 FROM contrat WHERE contrat.cont_statut = 2 AND contrat.tie_des_id = vue_tiers.tie_id ) THEN 'CONTRAT ACTIF' ELSE 'CONTRATS INACTIF' END AS statut, ( SELECT MAX( piece.pie_date ) FROM piece WHERE piece.tie_des_id = vue_tiers.tie_id AND piece.pie_type = 5 ) AS date_derniere_facture FROM vue_tiers, vue_dirigeant, magasin WHERE vue_tiers.tie_id = vue_dirigeant.tie_id AND vue_tiers.tie_publisher = vue_dirigeant.tie_publisher AND vue_tiers.tie_type_client = 1 AND vue_tiers.tie_code <> '50' AND magasin.mag_id = vue_tiers.mag_id AND magasin.mag_publisher = vue_tiers.mag_publisher AND omc_f_is_valide (magasin.mag_fin_validite, current timestamp) = 1 ORDER BY CAST ( ( CASE WHEN isnumeric( Code_Client ) = 1 THEN Code_Client ELSE 0 END ) AS INTEGER); ]
l'erreur :
"Mot timestamp inattendu
Merci |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 01,mayo 2020 - 09:58 |
current timestamp est propre à sql anywhere. Windev ne reconnait que le SQL ANSi. C'est la concaténation de GETDATE et NOW séparés par un espace
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 01,mayo 2020 - 22:04 |
Accès natif ou ordre SQLxxx en ODBC ?
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 01,mayo 2020 - 22:42 |
Windev ne fournit pas d'accès natif sql anywhere. Pour info, l'AGL maison de sybase (Power AMC) doit se connecter aux BDD sql anywhere via ODBC
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 02,mayo 2020 - 17:12 |
Donc si l'accès se fait par ODBC je ne vois pas ce qui bloque. Un SQLExec ou un HexecuteRequeteSQL() fera très bien l'affaire.
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 49 mensajes |
|
| Publicado el 04,mayo 2020 - 18:02 |
Re bonjour tout le monde
j'ai créé à la main les vues elles ce sont bien créées par contre comment puis-je les initialiser au démarrage de la fenêtre j'ai essayé un rafraichissement avec hmiseajourvue mais cela n'est pas compatible avec odbc du coup comment puis-je afficher les données de ma vue
Merci |
| |
| |
| | | |
|
| | | | |
| | |
|