PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Curseur sql en avance seule ...
Curseur sql en avance seule ...
Débuté par xof, 21 mar. 2018 11:13 - 4 réponses
Membre enregistré
282 messages
Popularité : +1 (1 vote)
Posté le 21 mars 2018 - 11:13
Bonjour,
je souhaite, à l'instar de ce que je fais pour une connexion sqlserver avec la fonction HouvreConnexion
HOuvreConnexion(gtabpouleDeConnexions_pmi[noligne], gsUser, gsMDP, gsServeur,gsBase,hOledbSQLServer,hOLectureEcriture,"",hCurseurClient+hCurseurForwardOnly)

déclarer que je souhaite un curseur "Avance seule" pour augmenter les performances de lecture
SQLConnecte(gsServeur,gsUser,gsMDP,gsBase,"OLEDB",hOledbSQLServer,"WD Connection Timeout = 30;WD Cursor Location=CLIENT;")

Mais je n'ai rien trouvé dans la doc ...
Est-ce possible ? Cela existe-t'il ?

D'avance, merci pour vos lumières.

--
Christophe Charron
Membre enregistré
326 messages
Popularité : +15 (19 votes)
Posté le 21 mars 2018 - 11:43
Bonjour.
Le SQLConnecte utilise une connexion via le driver ODBC -> c'est dans ta source de données suivant le type de driver que tu vas pouvoir mettre en lecture seule ou pas. Cette option n'est peut-être même pas disponible d'ailleurs. Dans ce cas là il te faut alors créer un source de données en lecture et une autre en écriture.
Je suis sceptique sur le fait que tu gagnes en performance de lecture - as tu fait un comparatif ?
Pour moi le "read only" est une sécurité quand on ne veut pas modifier des données en faisant du SQL en "maintenance", mode consocle sinon on fait systématiquement des requêtes en lectures/écritures sachant qu'un "SELECT" -> lecture et "UPDATE" ou "DELETE" -> écriture !

Michel.
Membre enregistré
282 messages
Popularité : +1 (1 vote)
Posté le 22 mars 2018 - 09:00
Bonjour,
non, sqlconnecte n'est pas seulement utilisable avec une connection ODBC déclarée.
Oui, j'ai fait des tests, avaec ou sans hcurseurForwardOnly et les différences de temps sont très significatives, surtout lorsque j'utilise des colonnes de type memo. L'analyse dans sqlprofiler montre le un nombre de paquets transmis bien moins importants avec ce paramètre que sans. Je souhaite donc savoir si son équivalent existe avec sqlconnecte.

--
Christophe Charron
Membre enregistré
326 messages
Popularité : +15 (19 votes)
Posté le 22 mars 2018 - 10:25
Bonjour.
Effectivement il ne faut pas obligatoirement une connexion ODBC, désolé.
L'option "WD Cursor Location=CLIENT" me paraît être la bonne.
Sinon une question : pourquoi mélanger HOuvreConnexion et SQLConnecte -> tu fais un comparatif ?
Si les fonctions "H" fonctionnent en OLEDB et sont plus rapides, pourquoi passer par les fonctions SQL ?

Michel.
Membre enregistré
282 messages
Popularité : +1 (1 vote)
Posté le 22 mars 2018 - 12:04
Oui, c'est la bonne. Il me manque juste l'équivalent de "hcurseurForwardOnly"
Mélange : pour pouvoir, dans certains cas, utiliser SQLTransaction avec l'option sqlannule si une des requêtes du lots foire ...

--
Christophe Charron